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

import "encoding/json"

// AttachedDatabaseConfigurationsClientCheckNameAvailabilityResponse contains the response from method AttachedDatabaseConfigurationsClient.CheckNameAvailability.
type AttachedDatabaseConfigurationsClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// AttachedDatabaseConfigurationsClientCreateOrUpdateResponse contains the response from method AttachedDatabaseConfigurationsClient.BeginCreateOrUpdate.
type AttachedDatabaseConfigurationsClientCreateOrUpdateResponse struct {
	// Class representing an attached database configuration.
	AttachedDatabaseConfiguration
}

// AttachedDatabaseConfigurationsClientDeleteResponse contains the response from method AttachedDatabaseConfigurationsClient.BeginDelete.
type AttachedDatabaseConfigurationsClientDeleteResponse struct {
	// placeholder for future response values
}

// AttachedDatabaseConfigurationsClientGetResponse contains the response from method AttachedDatabaseConfigurationsClient.Get.
type AttachedDatabaseConfigurationsClientGetResponse struct {
	// Class representing an attached database configuration.
	AttachedDatabaseConfiguration
}

// AttachedDatabaseConfigurationsClientListByClusterResponse contains the response from method AttachedDatabaseConfigurationsClient.NewListByClusterPager.
type AttachedDatabaseConfigurationsClientListByClusterResponse struct {
	// The list attached database configurations operation response.
	AttachedDatabaseConfigurationListResult
}

// ClusterPrincipalAssignmentsClientCheckNameAvailabilityResponse contains the response from method ClusterPrincipalAssignmentsClient.CheckNameAvailability.
type ClusterPrincipalAssignmentsClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// ClusterPrincipalAssignmentsClientCreateOrUpdateResponse contains the response from method ClusterPrincipalAssignmentsClient.BeginCreateOrUpdate.
type ClusterPrincipalAssignmentsClientCreateOrUpdateResponse struct {
	// Class representing a cluster principal assignment.
	ClusterPrincipalAssignment
}

// ClusterPrincipalAssignmentsClientDeleteResponse contains the response from method ClusterPrincipalAssignmentsClient.BeginDelete.
type ClusterPrincipalAssignmentsClientDeleteResponse struct {
	// placeholder for future response values
}

// ClusterPrincipalAssignmentsClientGetResponse contains the response from method ClusterPrincipalAssignmentsClient.Get.
type ClusterPrincipalAssignmentsClientGetResponse struct {
	// Class representing a cluster principal assignment.
	ClusterPrincipalAssignment
}

// ClusterPrincipalAssignmentsClientListResponse contains the response from method ClusterPrincipalAssignmentsClient.NewListPager.
type ClusterPrincipalAssignmentsClientListResponse struct {
	// The list Kusto cluster principal assignments operation response.
	ClusterPrincipalAssignmentListResult
}

// ClustersClientAddCalloutPoliciesResponse contains the response from method ClustersClient.BeginAddCalloutPolicies.
type ClustersClientAddCalloutPoliciesResponse struct {
	// placeholder for future response values
}

// ClustersClientAddLanguageExtensionsResponse contains the response from method ClustersClient.BeginAddLanguageExtensions.
type ClustersClientAddLanguageExtensionsResponse struct {
	// placeholder for future response values
}

// ClustersClientCheckNameAvailabilityResponse contains the response from method ClustersClient.CheckNameAvailability.
type ClustersClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// ClustersClientCreateOrUpdateResponse contains the response from method ClustersClient.BeginCreateOrUpdate.
type ClustersClientCreateOrUpdateResponse struct {
	// Class representing a Kusto cluster.
	Cluster
}

// ClustersClientDeleteResponse contains the response from method ClustersClient.BeginDelete.
type ClustersClientDeleteResponse struct {
	// placeholder for future response values
}

// ClustersClientDetachFollowerDatabasesResponse contains the response from method ClustersClient.BeginDetachFollowerDatabases.
type ClustersClientDetachFollowerDatabasesResponse struct {
	// placeholder for future response values
}

// ClustersClientDiagnoseVirtualNetworkResponse contains the response from method ClustersClient.BeginDiagnoseVirtualNetwork.
type ClustersClientDiagnoseVirtualNetworkResponse struct {
	DiagnoseVirtualNetworkResult
}

// ClustersClientGetResponse contains the response from method ClustersClient.Get.
type ClustersClientGetResponse struct {
	// Class representing a Kusto cluster.
	Cluster
}

// ClustersClientListByResourceGroupResponse contains the response from method ClustersClient.NewListByResourceGroupPager.
type ClustersClientListByResourceGroupResponse struct {
	// The list Kusto clusters operation response.
	ClusterListResult
}

// ClustersClientListCalloutPoliciesResponse contains the response from method ClustersClient.NewListCalloutPoliciesPager.
type ClustersClientListCalloutPoliciesResponse struct {
	// A list of the service's callout policy objects.
	CalloutPoliciesList
}

// ClustersClientListFollowerDatabasesGetResponse contains the response from method ClustersClient.NewListFollowerDatabasesGetPager.
type ClustersClientListFollowerDatabasesGetResponse struct {
	// The list Kusto database principals operation response.
	FollowerDatabaseListResultGet
}

// ClustersClientListFollowerDatabasesResponse contains the response from method ClustersClient.NewListFollowerDatabasesPager.
type ClustersClientListFollowerDatabasesResponse struct {
	// The list Kusto database principals operation response.
	FollowerDatabaseListResult
}

// ClustersClientListLanguageExtensionsResponse contains the response from method ClustersClient.NewListLanguageExtensionsPager.
type ClustersClientListLanguageExtensionsResponse struct {
	// The list of language extension objects.
	LanguageExtensionsList
}

// ClustersClientListOutboundNetworkDependenciesEndpointsResponse contains the response from method ClustersClient.NewListOutboundNetworkDependenciesEndpointsPager.
type ClustersClientListOutboundNetworkDependenciesEndpointsResponse struct {
	// Collection of Outbound Environment Endpoints
	OutboundNetworkDependenciesEndpointListResult
}

// ClustersClientListResponse contains the response from method ClustersClient.NewListPager.
type ClustersClientListResponse struct {
	// The list Kusto clusters operation response.
	ClusterListResult
}

// ClustersClientListSKUsByResourceResponse contains the response from method ClustersClient.NewListSKUsByResourcePager.
type ClustersClientListSKUsByResourceResponse struct {
	// List of available SKUs for a Kusto Cluster.
	ListResourceSKUsResult
}

// ClustersClientListSKUsResponse contains the response from method ClustersClient.NewListSKUsPager.
type ClustersClientListSKUsResponse struct {
	// The list of the EngagementFabric SKU descriptions
	SKUDescriptionList
}

// ClustersClientMigrateResponse contains the response from method ClustersClient.BeginMigrate.
type ClustersClientMigrateResponse struct {
	// placeholder for future response values
}

// ClustersClientRemoveCalloutPolicyResponse contains the response from method ClustersClient.BeginRemoveCalloutPolicy.
type ClustersClientRemoveCalloutPolicyResponse struct {
	// placeholder for future response values
}

// ClustersClientRemoveLanguageExtensionsResponse contains the response from method ClustersClient.BeginRemoveLanguageExtensions.
type ClustersClientRemoveLanguageExtensionsResponse struct {
	// placeholder for future response values
}

// ClustersClientStartResponse contains the response from method ClustersClient.BeginStart.
type ClustersClientStartResponse struct {
	// placeholder for future response values
}

// ClustersClientStopResponse contains the response from method ClustersClient.BeginStop.
type ClustersClientStopResponse struct {
	// placeholder for future response values
}

// ClustersClientUpdateResponse contains the response from method ClustersClient.BeginUpdate.
type ClustersClientUpdateResponse struct {
	// Class representing a Kusto cluster.
	Cluster
}

// DataConnectionsClientCheckNameAvailabilityResponse contains the response from method DataConnectionsClient.CheckNameAvailability.
type DataConnectionsClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// DataConnectionsClientCreateOrUpdateResponse contains the response from method DataConnectionsClient.BeginCreateOrUpdate.
type DataConnectionsClientCreateOrUpdateResponse struct {
	// Class representing an data connection.
	DataConnectionClassification
}

// MarshalJSON implements the json.Marshaller interface for type DataConnectionsClientCreateOrUpdateResponse.
func (d DataConnectionsClientCreateOrUpdateResponse) MarshalJSON() ([]byte, error) {
	return json.Marshal(d.DataConnectionClassification)
}

// UnmarshalJSON implements the json.Unmarshaller interface for type DataConnectionsClientCreateOrUpdateResponse.
func (d *DataConnectionsClientCreateOrUpdateResponse) UnmarshalJSON(data []byte) error {
	res, err := unmarshalDataConnectionClassification(data)
	if err != nil {
		return err
	}
	d.DataConnectionClassification = res
	return nil
}

// DataConnectionsClientDataConnectionValidationResponse contains the response from method DataConnectionsClient.BeginDataConnectionValidation.
type DataConnectionsClientDataConnectionValidationResponse struct {
	// The list Kusto data connection validation result.
	DataConnectionValidationListResult
}

// DataConnectionsClientDeleteResponse contains the response from method DataConnectionsClient.BeginDelete.
type DataConnectionsClientDeleteResponse struct {
	// placeholder for future response values
}

// DataConnectionsClientGetResponse contains the response from method DataConnectionsClient.Get.
type DataConnectionsClientGetResponse struct {
	// Class representing an data connection.
	DataConnectionClassification
}

// UnmarshalJSON implements the json.Unmarshaller interface for type DataConnectionsClientGetResponse.
func (d *DataConnectionsClientGetResponse) UnmarshalJSON(data []byte) error {
	res, err := unmarshalDataConnectionClassification(data)
	if err != nil {
		return err
	}
	d.DataConnectionClassification = res
	return nil
}

// DataConnectionsClientListByDatabaseResponse contains the response from method DataConnectionsClient.NewListByDatabasePager.
type DataConnectionsClientListByDatabaseResponse struct {
	// The list Kusto data connections operation response.
	DataConnectionListResult
}

// DataConnectionsClientUpdateResponse contains the response from method DataConnectionsClient.BeginUpdate.
type DataConnectionsClientUpdateResponse struct {
	// Class representing an data connection.
	DataConnectionClassification
}

// MarshalJSON implements the json.Marshaller interface for type DataConnectionsClientUpdateResponse.
func (d DataConnectionsClientUpdateResponse) MarshalJSON() ([]byte, error) {
	return json.Marshal(d.DataConnectionClassification)
}

// UnmarshalJSON implements the json.Unmarshaller interface for type DataConnectionsClientUpdateResponse.
func (d *DataConnectionsClientUpdateResponse) UnmarshalJSON(data []byte) error {
	res, err := unmarshalDataConnectionClassification(data)
	if err != nil {
		return err
	}
	d.DataConnectionClassification = res
	return nil
}

// DatabaseClientInviteFollowerResponse contains the response from method DatabaseClient.InviteFollower.
type DatabaseClientInviteFollowerResponse struct {
	// The result returned from a follower invitation generation request.
	DatabaseInviteFollowerResult
}

// DatabasePrincipalAssignmentsClientCheckNameAvailabilityResponse contains the response from method DatabasePrincipalAssignmentsClient.CheckNameAvailability.
type DatabasePrincipalAssignmentsClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// DatabasePrincipalAssignmentsClientCreateOrUpdateResponse contains the response from method DatabasePrincipalAssignmentsClient.BeginCreateOrUpdate.
type DatabasePrincipalAssignmentsClientCreateOrUpdateResponse struct {
	// Class representing a database principal assignment.
	DatabasePrincipalAssignment
}

// DatabasePrincipalAssignmentsClientDeleteResponse contains the response from method DatabasePrincipalAssignmentsClient.BeginDelete.
type DatabasePrincipalAssignmentsClientDeleteResponse struct {
	// placeholder for future response values
}

// DatabasePrincipalAssignmentsClientGetResponse contains the response from method DatabasePrincipalAssignmentsClient.Get.
type DatabasePrincipalAssignmentsClientGetResponse struct {
	// Class representing a database principal assignment.
	DatabasePrincipalAssignment
}

// DatabasePrincipalAssignmentsClientListResponse contains the response from method DatabasePrincipalAssignmentsClient.NewListPager.
type DatabasePrincipalAssignmentsClientListResponse struct {
	// The list Kusto database principal assignments operation response.
	DatabasePrincipalAssignmentListResult
}

// DatabasesClientAddPrincipalsResponse contains the response from method DatabasesClient.AddPrincipals.
type DatabasesClientAddPrincipalsResponse struct {
	// The list Kusto database principals operation response.
	DatabasePrincipalListResult
}

// DatabasesClientCheckNameAvailabilityResponse contains the response from method DatabasesClient.CheckNameAvailability.
type DatabasesClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// DatabasesClientCreateOrUpdateResponse contains the response from method DatabasesClient.BeginCreateOrUpdate.
type DatabasesClientCreateOrUpdateResponse struct {
	// Class representing a Kusto database.
	DatabaseClassification
}

// MarshalJSON implements the json.Marshaller interface for type DatabasesClientCreateOrUpdateResponse.
func (d DatabasesClientCreateOrUpdateResponse) MarshalJSON() ([]byte, error) {
	return json.Marshal(d.DatabaseClassification)
}

// UnmarshalJSON implements the json.Unmarshaller interface for type DatabasesClientCreateOrUpdateResponse.
func (d *DatabasesClientCreateOrUpdateResponse) UnmarshalJSON(data []byte) error {
	res, err := unmarshalDatabaseClassification(data)
	if err != nil {
		return err
	}
	d.DatabaseClassification = res
	return nil
}

// DatabasesClientDeleteResponse contains the response from method DatabasesClient.BeginDelete.
type DatabasesClientDeleteResponse struct {
	// placeholder for future response values
}

// DatabasesClientGetResponse contains the response from method DatabasesClient.Get.
type DatabasesClientGetResponse struct {
	// Class representing a Kusto database.
	DatabaseClassification
}

// UnmarshalJSON implements the json.Unmarshaller interface for type DatabasesClientGetResponse.
func (d *DatabasesClientGetResponse) UnmarshalJSON(data []byte) error {
	res, err := unmarshalDatabaseClassification(data)
	if err != nil {
		return err
	}
	d.DatabaseClassification = res
	return nil
}

// DatabasesClientListByClusterResponse contains the response from method DatabasesClient.NewListByClusterPager.
type DatabasesClientListByClusterResponse struct {
	// The list Kusto databases operation response.
	DatabaseListResult
}

// DatabasesClientListPrincipalsResponse contains the response from method DatabasesClient.NewListPrincipalsPager.
type DatabasesClientListPrincipalsResponse struct {
	// The list Kusto database principals operation response.
	DatabasePrincipalListResult
}

// DatabasesClientRemovePrincipalsResponse contains the response from method DatabasesClient.RemovePrincipals.
type DatabasesClientRemovePrincipalsResponse struct {
	// The list Kusto database principals operation response.
	DatabasePrincipalListResult
}

// DatabasesClientUpdateResponse contains the response from method DatabasesClient.BeginUpdate.
type DatabasesClientUpdateResponse struct {
	// Class representing a Kusto database.
	DatabaseClassification
}

// MarshalJSON implements the json.Marshaller interface for type DatabasesClientUpdateResponse.
func (d DatabasesClientUpdateResponse) MarshalJSON() ([]byte, error) {
	return json.Marshal(d.DatabaseClassification)
}

// UnmarshalJSON implements the json.Unmarshaller interface for type DatabasesClientUpdateResponse.
func (d *DatabasesClientUpdateResponse) UnmarshalJSON(data []byte) error {
	res, err := unmarshalDatabaseClassification(data)
	if err != nil {
		return err
	}
	d.DatabaseClassification = res
	return nil
}

// ManagedPrivateEndpointsClientCheckNameAvailabilityResponse contains the response from method ManagedPrivateEndpointsClient.CheckNameAvailability.
type ManagedPrivateEndpointsClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// ManagedPrivateEndpointsClientCreateOrUpdateResponse contains the response from method ManagedPrivateEndpointsClient.BeginCreateOrUpdate.
type ManagedPrivateEndpointsClientCreateOrUpdateResponse struct {
	// Class representing a managed private endpoint.
	ManagedPrivateEndpoint
}

// ManagedPrivateEndpointsClientDeleteResponse contains the response from method ManagedPrivateEndpointsClient.BeginDelete.
type ManagedPrivateEndpointsClientDeleteResponse struct {
	// placeholder for future response values
}

// ManagedPrivateEndpointsClientGetResponse contains the response from method ManagedPrivateEndpointsClient.Get.
type ManagedPrivateEndpointsClientGetResponse struct {
	// Class representing a managed private endpoint.
	ManagedPrivateEndpoint
}

// ManagedPrivateEndpointsClientListResponse contains the response from method ManagedPrivateEndpointsClient.NewListPager.
type ManagedPrivateEndpointsClientListResponse struct {
	// The list managed private endpoints operation response.
	ManagedPrivateEndpointListResult
}

// ManagedPrivateEndpointsClientUpdateResponse contains the response from method ManagedPrivateEndpointsClient.BeginUpdate.
type ManagedPrivateEndpointsClientUpdateResponse struct {
	// Class representing a managed private endpoint.
	ManagedPrivateEndpoint
}

// OperationsClientListResponse contains the response from method OperationsClient.NewListPager.
type OperationsClientListResponse struct {
	// Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next
	// set of results.
	OperationListResult
}

// OperationsResultsClientGetResponse contains the response from method OperationsResultsClient.Get.
type OperationsResultsClientGetResponse struct {
	// Operation Result Entity.
	OperationResult
}

// OperationsResultsLocationClientGetResponse contains the response from method OperationsResultsLocationClient.Get.
type OperationsResultsLocationClientGetResponse struct {
	// AzureAsyncOperation contains the information returned from the Azure-AsyncOperation header response.
	AzureAsyncOperation *string
}

// PrivateEndpointConnectionsClientCreateOrUpdateResponse contains the response from method PrivateEndpointConnectionsClient.BeginCreateOrUpdate.
type PrivateEndpointConnectionsClientCreateOrUpdateResponse struct {
	// A private endpoint connection
	PrivateEndpointConnection
}

// PrivateEndpointConnectionsClientDeleteResponse contains the response from method PrivateEndpointConnectionsClient.BeginDelete.
type PrivateEndpointConnectionsClientDeleteResponse struct {
	// placeholder for future response values
}

// PrivateEndpointConnectionsClientGetResponse contains the response from method PrivateEndpointConnectionsClient.Get.
type PrivateEndpointConnectionsClientGetResponse struct {
	// A private endpoint connection
	PrivateEndpointConnection
}

// PrivateEndpointConnectionsClientListResponse contains the response from method PrivateEndpointConnectionsClient.NewListPager.
type PrivateEndpointConnectionsClientListResponse struct {
	// A list of private endpoint connections
	PrivateEndpointConnectionListResult
}

// PrivateLinkResourcesClientGetResponse contains the response from method PrivateLinkResourcesClient.Get.
type PrivateLinkResourcesClientGetResponse struct {
	// A private link resource
	PrivateLinkResource
}

// PrivateLinkResourcesClientListResponse contains the response from method PrivateLinkResourcesClient.NewListPager.
type PrivateLinkResourcesClientListResponse struct {
	// A list of private link resources
	PrivateLinkResourceListResult
}

// SKUsClientListResponse contains the response from method SKUsClient.NewListPager.
type SKUsClientListResponse struct {
	// The list of the EngagementFabric SKU descriptions
	SKUDescriptionList
}

// SandboxCustomImagesClientCheckNameAvailabilityResponse contains the response from method SandboxCustomImagesClient.CheckNameAvailability.
type SandboxCustomImagesClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// SandboxCustomImagesClientCreateOrUpdateResponse contains the response from method SandboxCustomImagesClient.BeginCreateOrUpdate.
type SandboxCustomImagesClientCreateOrUpdateResponse struct {
	// Class representing a Kusto sandbox custom image.
	SandboxCustomImage
}

// SandboxCustomImagesClientDeleteResponse contains the response from method SandboxCustomImagesClient.BeginDelete.
type SandboxCustomImagesClientDeleteResponse struct {
	// placeholder for future response values
}

// SandboxCustomImagesClientGetResponse contains the response from method SandboxCustomImagesClient.Get.
type SandboxCustomImagesClientGetResponse struct {
	// Class representing a Kusto sandbox custom image.
	SandboxCustomImage
}

// SandboxCustomImagesClientListByClusterResponse contains the response from method SandboxCustomImagesClient.NewListByClusterPager.
type SandboxCustomImagesClientListByClusterResponse struct {
	// The list Kusto sandbox custom images operation response.
	SandboxCustomImagesListResult
}

// SandboxCustomImagesClientUpdateResponse contains the response from method SandboxCustomImagesClient.BeginUpdate.
type SandboxCustomImagesClientUpdateResponse struct {
	// Class representing a Kusto sandbox custom image.
	SandboxCustomImage
}

// ScriptsClientCheckNameAvailabilityResponse contains the response from method ScriptsClient.CheckNameAvailability.
type ScriptsClientCheckNameAvailabilityResponse struct {
	// The result returned from a check name availability request.
	CheckNameResult
}

// ScriptsClientCreateOrUpdateResponse contains the response from method ScriptsClient.BeginCreateOrUpdate.
type ScriptsClientCreateOrUpdateResponse struct {
	// Class representing a database script.
	Script
}

// ScriptsClientDeleteResponse contains the response from method ScriptsClient.BeginDelete.
type ScriptsClientDeleteResponse struct {
	// placeholder for future response values
}

// ScriptsClientGetResponse contains the response from method ScriptsClient.Get.
type ScriptsClientGetResponse struct {
	// Class representing a database script.
	Script
}

// ScriptsClientListByDatabaseResponse contains the response from method ScriptsClient.NewListByDatabasePager.
type ScriptsClientListByDatabaseResponse struct {
	// The list Kusto database script operation response.
	ScriptListResult
}

// ScriptsClientUpdateResponse contains the response from method ScriptsClient.BeginUpdate.
type ScriptsClientUpdateResponse struct {
	// Class representing a database script.
	Script
}
