package filesystem

// 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.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

import (
	"encoding/json"
	"github.com/Azure/go-autorest/autorest"
	"io"
)

// The package's fully qualified name.
const fqdn = "github.com/Azure/azure-sdk-for-go/services/datalake/store/2016-11-01/filesystem"

// ACLStatus data Lake Store file or directory Access Control List information.
type ACLStatus struct {
	// Entries - the list of ACLSpec entries on a file or directory.
	Entries *[]string `json:"entries,omitempty"`
	// Group - the group owner, an AAD Object ID.
	Group *string `json:"group,omitempty"`
	// Owner - the user owner, an AAD Object ID.
	Owner *string `json:"owner,omitempty"`
	// Permission - The octal representation of the unnamed user, mask and other permissions.
	Permission *string `json:"permission,omitempty"`
	// StickyBit - READ-ONLY; the indicator of whether the sticky bit is on or off.
	StickyBit *bool `json:"stickyBit,omitempty"`
}

// MarshalJSON is the custom marshaler for ACLStatus.
func (as ACLStatus) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	if as.Entries != nil {
		objectMap["entries"] = as.Entries
	}
	if as.Group != nil {
		objectMap["group"] = as.Group
	}
	if as.Owner != nil {
		objectMap["owner"] = as.Owner
	}
	if as.Permission != nil {
		objectMap["permission"] = as.Permission
	}
	return json.Marshal(objectMap)
}

// ACLStatusResult data Lake Store file or directory Access Control List information.
type ACLStatusResult struct {
	autorest.Response `json:"-"`
	// ACLStatus - the AclStatus object for a given file or directory.
	ACLStatus *ACLStatus `json:"aclStatus,omitempty"`
}

// AdlsAccessControlException a WebHDFS exception thrown indicating that access is denied due to
// insufficient permissions. Thrown when a 403 error response code is returned (forbidden).
type AdlsAccessControlException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsAccessControlException.
func (aace AdlsAccessControlException) MarshalJSON() ([]byte, error) {
	aace.Exception = ExceptionAccessControlException
	objectMap := make(map[string]interface{})
	if aace.Exception != "" {
		objectMap["exception"] = aace.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return &aace, true
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsAccessControlException.
func (aace AdlsAccessControlException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &aace, true
}

// AdlsBadOffsetException a WebHDFS exception thrown indicating the append or read is from a bad offset.
// Thrown when a 400 error response code is returned for append and open operations (Bad request).
type AdlsBadOffsetException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) MarshalJSON() ([]byte, error) {
	aboe.Exception = ExceptionBadOffsetException
	objectMap := make(map[string]interface{})
	if aboe.Exception != "" {
		objectMap["exception"] = aboe.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return &aboe, true
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsBadOffsetException.
func (aboe AdlsBadOffsetException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &aboe, true
}

// AdlsError data Lake Store filesystem error containing a specific WebHDFS exception.
type AdlsError struct {
	// RemoteException - READ-ONLY; the object representing the actual WebHDFS exception being returned.
	RemoteException BasicAdlsRemoteException `json:"remoteException,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsError.
func (ae AdlsError) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	return json.Marshal(objectMap)
}

// UnmarshalJSON is the custom unmarshaler for AdlsError struct.
func (ae *AdlsError) UnmarshalJSON(body []byte) error {
	var m map[string]*json.RawMessage
	err := json.Unmarshal(body, &m)
	if err != nil {
		return err
	}
	for k, v := range m {
		switch k {
		case "remoteException":
			if v != nil {
				remoteException, err := unmarshalBasicAdlsRemoteException(*v)
				if err != nil {
					return err
				}
				ae.RemoteException = remoteException
			}
		}
	}

	return nil
}

// AdlsFileAlreadyExistsException a WebHDFS exception thrown indicating the file or folder already exists.
// Thrown when a 403 error response code is returned (forbidden).
type AdlsFileAlreadyExistsException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) MarshalJSON() ([]byte, error) {
	afaee.Exception = ExceptionFileAlreadyExistsException
	objectMap := make(map[string]interface{})
	if afaee.Exception != "" {
		objectMap["exception"] = afaee.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return &afaee, true
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsFileAlreadyExistsException.
func (afaee AdlsFileAlreadyExistsException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &afaee, true
}

// AdlsFileNotFoundException a WebHDFS exception thrown indicating the file or folder could not be found.
// Thrown when a 404 error response code is returned (not found).
type AdlsFileNotFoundException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) MarshalJSON() ([]byte, error) {
	afnfe.Exception = ExceptionFileNotFoundException
	objectMap := make(map[string]interface{})
	if afnfe.Exception != "" {
		objectMap["exception"] = afnfe.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return &afnfe, true
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsFileNotFoundException.
func (afnfe AdlsFileNotFoundException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &afnfe, true
}

// AdlsIllegalArgumentException a WebHDFS exception thrown indicating that one more arguments is incorrect.
// Thrown when a 400 error response code is returned (bad request).
type AdlsIllegalArgumentException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) MarshalJSON() ([]byte, error) {
	aiae.Exception = ExceptionIllegalArgumentException
	objectMap := make(map[string]interface{})
	if aiae.Exception != "" {
		objectMap["exception"] = aiae.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return &aiae, true
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsIllegalArgumentException.
func (aiae AdlsIllegalArgumentException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &aiae, true
}

// AdlsIOException a WebHDFS exception thrown indicating there was an IO (read or write) error. Thrown when
// a 403 error response code is returned (forbidden).
type AdlsIOException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsIOException.
func (aie AdlsIOException) MarshalJSON() ([]byte, error) {
	aie.Exception = ExceptionIOException
	objectMap := make(map[string]interface{})
	if aie.Exception != "" {
		objectMap["exception"] = aie.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsIOException() (*AdlsIOException, bool) {
	return &aie, true
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsIOException.
func (aie AdlsIOException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &aie, true
}

// BasicAdlsRemoteException data Lake Store filesystem exception based on the WebHDFS definition for RemoteExceptions.
// This is a WebHDFS 'catch all' exception
type BasicAdlsRemoteException interface {
	AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool)
	AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool)
	AsAdlsSecurityException() (*AdlsSecurityException, bool)
	AsAdlsIOException() (*AdlsIOException, bool)
	AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool)
	AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool)
	AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool)
	AsAdlsRuntimeException() (*AdlsRuntimeException, bool)
	AsAdlsAccessControlException() (*AdlsAccessControlException, bool)
	AsAdlsThrottledException() (*AdlsThrottledException, bool)
	AsAdlsRemoteException() (*AdlsRemoteException, bool)
}

// AdlsRemoteException data Lake Store filesystem exception based on the WebHDFS definition for
// RemoteExceptions. This is a WebHDFS 'catch all' exception
type AdlsRemoteException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

func unmarshalBasicAdlsRemoteException(body []byte) (BasicAdlsRemoteException, error) {
	var m map[string]interface{}
	err := json.Unmarshal(body, &m)
	if err != nil {
		return nil, err
	}

	switch m["exception"] {
	case string(ExceptionIllegalArgumentException):
		var aiae AdlsIllegalArgumentException
		err := json.Unmarshal(body, &aiae)
		return aiae, err
	case string(ExceptionUnsupportedOperationException):
		var auoe AdlsUnsupportedOperationException
		err := json.Unmarshal(body, &auoe)
		return auoe, err
	case string(ExceptionSecurityException):
		var ase AdlsSecurityException
		err := json.Unmarshal(body, &ase)
		return ase, err
	case string(ExceptionIOException):
		var aie AdlsIOException
		err := json.Unmarshal(body, &aie)
		return aie, err
	case string(ExceptionFileNotFoundException):
		var afnfe AdlsFileNotFoundException
		err := json.Unmarshal(body, &afnfe)
		return afnfe, err
	case string(ExceptionFileAlreadyExistsException):
		var afaee AdlsFileAlreadyExistsException
		err := json.Unmarshal(body, &afaee)
		return afaee, err
	case string(ExceptionBadOffsetException):
		var aboe AdlsBadOffsetException
		err := json.Unmarshal(body, &aboe)
		return aboe, err
	case string(ExceptionRuntimeException):
		var are AdlsRuntimeException
		err := json.Unmarshal(body, &are)
		return are, err
	case string(ExceptionAccessControlException):
		var aace AdlsAccessControlException
		err := json.Unmarshal(body, &aace)
		return aace, err
	case string(ExceptionThrottledException):
		var ate AdlsThrottledException
		err := json.Unmarshal(body, &ate)
		return ate, err
	default:
		var are AdlsRemoteException
		err := json.Unmarshal(body, &are)
		return are, err
	}
}
func unmarshalBasicAdlsRemoteExceptionArray(body []byte) ([]BasicAdlsRemoteException, error) {
	var rawMessages []*json.RawMessage
	err := json.Unmarshal(body, &rawMessages)
	if err != nil {
		return nil, err
	}

	areArray := make([]BasicAdlsRemoteException, len(rawMessages))

	for index, rawMessage := range rawMessages {
		are, err := unmarshalBasicAdlsRemoteException(*rawMessage)
		if err != nil {
			return nil, err
		}
		areArray[index] = are
	}
	return areArray, nil
}

// MarshalJSON is the custom marshaler for AdlsRemoteException.
func (are AdlsRemoteException) MarshalJSON() ([]byte, error) {
	are.Exception = ExceptionAdlsRemoteException
	objectMap := make(map[string]interface{})
	if are.Exception != "" {
		objectMap["exception"] = are.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return &are, true
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsRemoteException.
func (are AdlsRemoteException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &are, true
}

// AdlsRuntimeException a WebHDFS exception thrown when an unexpected error occurs during an operation.
// Thrown when a 500 error response code is returned (Internal server error).
type AdlsRuntimeException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsRuntimeException.
func (are AdlsRuntimeException) MarshalJSON() ([]byte, error) {
	are.Exception = ExceptionRuntimeException
	objectMap := make(map[string]interface{})
	if are.Exception != "" {
		objectMap["exception"] = are.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return &are, true
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsRuntimeException.
func (are AdlsRuntimeException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &are, true
}

// AdlsSecurityException a WebHDFS exception thrown indicating that access is denied. Thrown when a 401
// error response code is returned (Unauthorized).
type AdlsSecurityException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsSecurityException.
func (ase AdlsSecurityException) MarshalJSON() ([]byte, error) {
	ase.Exception = ExceptionSecurityException
	objectMap := make(map[string]interface{})
	if ase.Exception != "" {
		objectMap["exception"] = ase.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return &ase, true
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsSecurityException.
func (ase AdlsSecurityException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &ase, true
}

// AdlsThrottledException a WebHDFS exception thrown indicating that the request is being throttled.
// Reducing the number of requests or request size helps to mitigate this error.
type AdlsThrottledException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsThrottledException.
func (ate AdlsThrottledException) MarshalJSON() ([]byte, error) {
	ate.Exception = ExceptionThrottledException
	objectMap := make(map[string]interface{})
	if ate.Exception != "" {
		objectMap["exception"] = ate.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return nil, false
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return &ate, true
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsThrottledException.
func (ate AdlsThrottledException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &ate, true
}

// AdlsUnsupportedOperationException a WebHDFS exception thrown indicating that the requested operation is
// not supported. Thrown when a 400 error response code is returned (bad request).
type AdlsUnsupportedOperationException struct {
	// JavaClassName - READ-ONLY; the full class package name for the exception thrown, such as 'java.lang.IllegalArgumentException'.
	JavaClassName *string `json:"javaClassName,omitempty"`
	// Message - READ-ONLY; the message associated with the exception that was thrown, such as 'Invalid value for webhdfs parameter "permission":...'.
	Message *string `json:"message,omitempty"`
	// Exception - Possible values include: 'ExceptionAdlsRemoteException', 'ExceptionIllegalArgumentException', 'ExceptionUnsupportedOperationException', 'ExceptionSecurityException', 'ExceptionIOException', 'ExceptionFileNotFoundException', 'ExceptionFileAlreadyExistsException', 'ExceptionBadOffsetException', 'ExceptionRuntimeException', 'ExceptionAccessControlException', 'ExceptionThrottledException'
	Exception Exception `json:"exception,omitempty"`
}

// MarshalJSON is the custom marshaler for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) MarshalJSON() ([]byte, error) {
	auoe.Exception = ExceptionUnsupportedOperationException
	objectMap := make(map[string]interface{})
	if auoe.Exception != "" {
		objectMap["exception"] = auoe.Exception
	}
	return json.Marshal(objectMap)
}

// AsAdlsIllegalArgumentException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsIllegalArgumentException() (*AdlsIllegalArgumentException, bool) {
	return nil, false
}

// AsAdlsUnsupportedOperationException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsUnsupportedOperationException() (*AdlsUnsupportedOperationException, bool) {
	return &auoe, true
}

// AsAdlsSecurityException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsSecurityException() (*AdlsSecurityException, bool) {
	return nil, false
}

// AsAdlsIOException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsIOException() (*AdlsIOException, bool) {
	return nil, false
}

// AsAdlsFileNotFoundException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsFileNotFoundException() (*AdlsFileNotFoundException, bool) {
	return nil, false
}

// AsAdlsFileAlreadyExistsException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsFileAlreadyExistsException() (*AdlsFileAlreadyExistsException, bool) {
	return nil, false
}

// AsAdlsBadOffsetException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsBadOffsetException() (*AdlsBadOffsetException, bool) {
	return nil, false
}

// AsAdlsRuntimeException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsRuntimeException() (*AdlsRuntimeException, bool) {
	return nil, false
}

// AsAdlsAccessControlException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsAccessControlException() (*AdlsAccessControlException, bool) {
	return nil, false
}

// AsAdlsThrottledException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsThrottledException() (*AdlsThrottledException, bool) {
	return nil, false
}

// AsAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsAdlsRemoteException() (*AdlsRemoteException, bool) {
	return nil, false
}

// AsBasicAdlsRemoteException is the BasicAdlsRemoteException implementation for AdlsUnsupportedOperationException.
func (auoe AdlsUnsupportedOperationException) AsBasicAdlsRemoteException() (BasicAdlsRemoteException, bool) {
	return &auoe, true
}

// ContentSummary data Lake Store content summary information
type ContentSummary struct {
	// DirectoryCount - READ-ONLY; the number of directories.
	DirectoryCount *int64 `json:"directoryCount,omitempty"`
	// FileCount - READ-ONLY; the number of files.
	FileCount *int64 `json:"fileCount,omitempty"`
	// Length - READ-ONLY; the number of bytes used by the content.
	Length *int64 `json:"length,omitempty"`
	// SpaceConsumed - READ-ONLY; the disk space consumed by the content.
	SpaceConsumed *int64 `json:"spaceConsumed,omitempty"`
}

// MarshalJSON is the custom marshaler for ContentSummary.
func (cs ContentSummary) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	return json.Marshal(objectMap)
}

// ContentSummaryResult data Lake Store filesystem content summary information response.
type ContentSummaryResult struct {
	autorest.Response `json:"-"`
	// ContentSummary - READ-ONLY; the content summary for the specified path
	ContentSummary *ContentSummary `json:"contentSummary,omitempty"`
}

// MarshalJSON is the custom marshaler for ContentSummaryResult.
func (csr ContentSummaryResult) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	return json.Marshal(objectMap)
}

// FileOperationResult the result of the request or operation.
type FileOperationResult struct {
	autorest.Response `json:"-"`
	// OperationResult - READ-ONLY; the result of the operation or request.
	OperationResult *bool `json:"boolean,omitempty"`
}

// MarshalJSON is the custom marshaler for FileOperationResult.
func (forVar FileOperationResult) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	return json.Marshal(objectMap)
}

// FileStatuses data Lake Store file status list information.
type FileStatuses struct {
	// FileStatus - READ-ONLY; the object containing the list of properties of the files.
	FileStatus *[]FileStatusProperties `json:"fileStatus,omitempty"`
}

// MarshalJSON is the custom marshaler for FileStatuses.
func (fs FileStatuses) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	return json.Marshal(objectMap)
}

// FileStatusesResult data Lake Store filesystem file status list information response.
type FileStatusesResult struct {
	autorest.Response `json:"-"`
	// FileStatuses - READ-ONLY; the object representing the list of file statuses.
	FileStatuses *FileStatuses `json:"fileStatuses,omitempty"`
}

// MarshalJSON is the custom marshaler for FileStatusesResult.
func (fsr FileStatusesResult) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	return json.Marshal(objectMap)
}

// FileStatusProperties data Lake Store file or directory information.
type FileStatusProperties struct {
	// AccessTime - READ-ONLY; the last access time as ticks since the epoch.
	AccessTime *int64 `json:"accessTime,omitempty"`
	// BlockSize - READ-ONLY; the block size for the file.
	BlockSize *int64 `json:"blockSize,omitempty"`
	// ExpirationTime - READ-ONLY; Gets the expiration time, if any, as ticks since the epoch. If the value is 0 or DateTime.MaxValue there is no expiration.
	ExpirationTime *int64 `json:"msExpirationTime,omitempty"`
	// Group - READ-ONLY; the group owner.
	Group *string `json:"group,omitempty"`
	// Length - READ-ONLY; the number of bytes in a file.
	Length *int64 `json:"length,omitempty"`
	// ModificationTime - READ-ONLY; the modification time as ticks since the epoch.
	ModificationTime *int64 `json:"modificationTime,omitempty"`
	// Owner - READ-ONLY; the user who is the owner.
	Owner *string `json:"owner,omitempty"`
	// PathSuffix - READ-ONLY; the path suffix.
	PathSuffix *string `json:"pathSuffix,omitempty"`
	// Permission - READ-ONLY; the permission represented as an string.
	Permission *string `json:"permission,omitempty"`
	// Type - READ-ONLY; the type of the path object. Possible values include: 'FILE', 'DIRECTORY'
	Type FileType `json:"type,omitempty"`
	// ACLBit - READ-ONLY; flag to indicate if extended acls are enabled
	ACLBit *bool `json:"aclBit,omitempty"`
}

// MarshalJSON is the custom marshaler for FileStatusProperties.
func (fsp FileStatusProperties) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	return json.Marshal(objectMap)
}

// FileStatusResult data Lake Store filesystem file status information response.
type FileStatusResult struct {
	autorest.Response `json:"-"`
	// FileStatus - READ-ONLY; the file status object associated with the specified path.
	FileStatus *FileStatusProperties `json:"fileStatus,omitempty"`
}

// MarshalJSON is the custom marshaler for FileStatusResult.
func (fsr FileStatusResult) MarshalJSON() ([]byte, error) {
	objectMap := make(map[string]interface{})
	return json.Marshal(objectMap)
}

// ReadCloser ...
type ReadCloser struct {
	autorest.Response `json:"-"`
	Value             *io.ReadCloser `json:"value,omitempty"`
}
