# coding=utf-8
# --------------------------------------------------------------------------
# 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) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
# pylint: disable=wrong-import-position

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from ._patch import *  # pylint: disable=unused-wildcard-import


from ._models import (  # type: ignore
    AutoScaleRun,
    AutoScaleRunError,
    AutoUserSpecification,
    AutomaticOsUpgradePolicy,
    AzureBlobFileSystemConfiguration,
    AzureFileShareConfiguration,
    BatchAffinityInfo,
    BatchApplication,
    BatchApplicationPackageReference,
    BatchAutoPoolSpecification,
    BatchContainerConfiguration,
    BatchCreateTaskCollectionResult,
    BatchDiffDiskSettings,
    BatchError,
    BatchErrorDetail,
    BatchErrorMessage,
    BatchInboundNatPool,
    BatchJob,
    BatchJobConstraints,
    BatchJobCreateOptions,
    BatchJobDisableOptions,
    BatchJobExecutionInfo,
    BatchJobManagerTask,
    BatchJobNetworkConfiguration,
    BatchJobPreparationAndReleaseTaskStatus,
    BatchJobPreparationTask,
    BatchJobPreparationTaskExecutionInfo,
    BatchJobReleaseTask,
    BatchJobReleaseTaskExecutionInfo,
    BatchJobSchedule,
    BatchJobScheduleConfiguration,
    BatchJobScheduleCreateOptions,
    BatchJobScheduleExecutionInfo,
    BatchJobScheduleStatistics,
    BatchJobScheduleUpdateOptions,
    BatchJobSchedulingError,
    BatchJobSpecification,
    BatchJobStatistics,
    BatchJobUpdateOptions,
    BatchMetadataItem,
    BatchNode,
    BatchNodeAgentInfo,
    BatchNodeCounts,
    BatchNodeDisableSchedulingOptions,
    BatchNodeEndpointConfiguration,
    BatchNodeError,
    BatchNodeFile,
    BatchNodeIdentityReference,
    BatchNodeInfo,
    BatchNodePlacementConfiguration,
    BatchNodeRemoteLoginSettings,
    BatchNodeRemoveOptions,
    BatchNodeUserCreateOptions,
    BatchNodeUserReplaceOptions,
    BatchNodeVMExtension,
    BatchOsDisk,
    BatchPool,
    BatchPoolCreateOptions,
    BatchPoolEnableAutoScaleOptions,
    BatchPoolEndpointConfiguration,
    BatchPoolEvaluateAutoScaleOptions,
    BatchPoolIdentity,
    BatchPoolIdentityReference,
    BatchPoolInfo,
    BatchPoolNodeCounts,
    BatchPoolReplaceOptions,
    BatchPoolResizeOptions,
    BatchPoolResourceStatistics,
    BatchPoolSpecification,
    BatchPoolStatistics,
    BatchPoolUpdateOptions,
    BatchPoolUsageMetrics,
    BatchPoolUsageStatistics,
    BatchPublicIpAddressConfiguration,
    BatchStartTask,
    BatchStartTaskInfo,
    BatchSubtask,
    BatchSupportedImage,
    BatchTask,
    BatchTaskConstraints,
    BatchTaskContainerExecutionInfo,
    BatchTaskContainerSettings,
    BatchTaskCounts,
    BatchTaskCountsResult,
    BatchTaskCreateOptions,
    BatchTaskCreateResult,
    BatchTaskDependencies,
    BatchTaskExecutionInfo,
    BatchTaskFailureInfo,
    BatchTaskGroup,
    BatchTaskIdRange,
    BatchTaskInfo,
    BatchTaskSchedulingPolicy,
    BatchTaskSlotCounts,
    BatchTaskStatistics,
    BatchUefiSettings,
    BatchUserAssignedIdentity,
    BatchVmDiskSecurityProfile,
    BatchVmImageReference,
    CifsMountConfiguration,
    ContainerHostBatchBindMountEntry,
    ContainerRegistryReference,
    DataDisk,
    DiskCustomerManagedKey,
    DiskEncryptionConfiguration,
    DiskEncryptionSetParameters,
    EnvironmentSetting,
    ExitCodeMapping,
    ExitCodeRangeMapping,
    ExitConditions,
    ExitOptions,
    FileProperties,
    HostEndpointSettings,
    IPTag,
    InboundEndpoint,
    InstanceViewStatus,
    LinuxUserConfiguration,
    ManagedDisk,
    MountConfiguration,
    MultiInstanceSettings,
    NameValuePair,
    NetworkConfiguration,
    NetworkSecurityGroupRule,
    NfsMountConfiguration,
    OutputFile,
    OutputFileBlobContainerDestination,
    OutputFileDestination,
    OutputFileUploadConfiguration,
    OutputFileUploadHeader,
    ProxyAgentSettings,
    RecentBatchJob,
    ResizeError,
    ResourceFile,
    RollingUpgradePolicy,
    SecurityProfile,
    ServiceArtifactReference,
    UpgradePolicy,
    UploadBatchServiceLogsOptions,
    UploadBatchServiceLogsResult,
    UserAccount,
    UserIdentity,
    VMExtension,
    VMExtensionInstanceView,
    VirtualMachineConfiguration,
    VirtualMachineInfo,
    WindowsConfiguration,
    WindowsUserConfiguration,
)

from ._enums import (  # type: ignore
    AllocationState,
    AutoUserScope,
    BatchAllTasksCompleteMode,
    BatchErrorSourceCategory,
    BatchJobActionKind,
    BatchJobDefaultOrder,
    BatchJobPreparationTaskState,
    BatchJobReleaseTaskState,
    BatchJobScheduleState,
    BatchJobState,
    BatchNodeDeallocationOption,
    BatchNodeDisableSchedulingOption,
    BatchNodeFillType,
    BatchNodePlacementPolicyType,
    BatchNodeState,
    BatchPoolIdentityType,
    BatchPoolLifetimeOption,
    BatchPoolState,
    BatchStartTaskState,
    BatchSubtaskState,
    BatchTaskAddStatus,
    BatchTaskExecutionResult,
    BatchTaskFailureMode,
    BatchTaskState,
    CachingType,
    ContainerHostDataPath,
    ContainerType,
    ContainerWorkingDirectory,
    DependencyAction,
    DiffDiskPlacement,
    DisableBatchJobOption,
    DiskEncryptionTarget,
    DynamicVNetAssignmentScope,
    ElevationLevel,
    HostEndpointSettingsModeTypes,
    IPFamily,
    ImageVerificationType,
    InboundEndpointProtocol,
    IpAddressProvisioningType,
    LoginMode,
    NetworkSecurityGroupRuleAccess,
    OSType,
    OutputFileUploadCondition,
    SchedulingState,
    SecurityEncryptionTypes,
    SecurityTypes,
    StatusLevelTypes,
    StorageAccountType,
    UpgradeMode,
)
from ._patch import __all__ as _patch_all
from ._patch import *
from ._patch import patch_sdk as _patch_sdk

__all__ = [
    "AutoScaleRun",
    "AutoScaleRunError",
    "AutoUserSpecification",
    "AutomaticOsUpgradePolicy",
    "AzureBlobFileSystemConfiguration",
    "AzureFileShareConfiguration",
    "BatchAffinityInfo",
    "BatchApplication",
    "BatchApplicationPackageReference",
    "BatchAutoPoolSpecification",
    "BatchContainerConfiguration",
    "BatchCreateTaskCollectionResult",
    "BatchDiffDiskSettings",
    "BatchError",
    "BatchErrorDetail",
    "BatchErrorMessage",
    "BatchInboundNatPool",
    "BatchJob",
    "BatchJobConstraints",
    "BatchJobCreateOptions",
    "BatchJobDisableOptions",
    "BatchJobExecutionInfo",
    "BatchJobManagerTask",
    "BatchJobNetworkConfiguration",
    "BatchJobPreparationAndReleaseTaskStatus",
    "BatchJobPreparationTask",
    "BatchJobPreparationTaskExecutionInfo",
    "BatchJobReleaseTask",
    "BatchJobReleaseTaskExecutionInfo",
    "BatchJobSchedule",
    "BatchJobScheduleConfiguration",
    "BatchJobScheduleCreateOptions",
    "BatchJobScheduleExecutionInfo",
    "BatchJobScheduleStatistics",
    "BatchJobScheduleUpdateOptions",
    "BatchJobSchedulingError",
    "BatchJobSpecification",
    "BatchJobStatistics",
    "BatchJobUpdateOptions",
    "BatchMetadataItem",
    "BatchNode",
    "BatchNodeAgentInfo",
    "BatchNodeCounts",
    "BatchNodeDisableSchedulingOptions",
    "BatchNodeEndpointConfiguration",
    "BatchNodeError",
    "BatchNodeFile",
    "BatchNodeIdentityReference",
    "BatchNodeInfo",
    "BatchNodePlacementConfiguration",
    "BatchNodeRemoteLoginSettings",
    "BatchNodeRemoveOptions",
    "BatchNodeUserCreateOptions",
    "BatchNodeUserReplaceOptions",
    "BatchNodeVMExtension",
    "BatchOsDisk",
    "BatchPool",
    "BatchPoolCreateOptions",
    "BatchPoolEnableAutoScaleOptions",
    "BatchPoolEndpointConfiguration",
    "BatchPoolEvaluateAutoScaleOptions",
    "BatchPoolIdentity",
    "BatchPoolIdentityReference",
    "BatchPoolInfo",
    "BatchPoolNodeCounts",
    "BatchPoolReplaceOptions",
    "BatchPoolResizeOptions",
    "BatchPoolResourceStatistics",
    "BatchPoolSpecification",
    "BatchPoolStatistics",
    "BatchPoolUpdateOptions",
    "BatchPoolUsageMetrics",
    "BatchPoolUsageStatistics",
    "BatchPublicIpAddressConfiguration",
    "BatchStartTask",
    "BatchStartTaskInfo",
    "BatchSubtask",
    "BatchSupportedImage",
    "BatchTask",
    "BatchTaskConstraints",
    "BatchTaskContainerExecutionInfo",
    "BatchTaskContainerSettings",
    "BatchTaskCounts",
    "BatchTaskCountsResult",
    "BatchTaskCreateOptions",
    "BatchTaskCreateResult",
    "BatchTaskDependencies",
    "BatchTaskExecutionInfo",
    "BatchTaskFailureInfo",
    "BatchTaskGroup",
    "BatchTaskIdRange",
    "BatchTaskInfo",
    "BatchTaskSchedulingPolicy",
    "BatchTaskSlotCounts",
    "BatchTaskStatistics",
    "BatchUefiSettings",
    "BatchUserAssignedIdentity",
    "BatchVmDiskSecurityProfile",
    "BatchVmImageReference",
    "CifsMountConfiguration",
    "ContainerHostBatchBindMountEntry",
    "ContainerRegistryReference",
    "DataDisk",
    "DiskCustomerManagedKey",
    "DiskEncryptionConfiguration",
    "DiskEncryptionSetParameters",
    "EnvironmentSetting",
    "ExitCodeMapping",
    "ExitCodeRangeMapping",
    "ExitConditions",
    "ExitOptions",
    "FileProperties",
    "HostEndpointSettings",
    "IPTag",
    "InboundEndpoint",
    "InstanceViewStatus",
    "LinuxUserConfiguration",
    "ManagedDisk",
    "MountConfiguration",
    "MultiInstanceSettings",
    "NameValuePair",
    "NetworkConfiguration",
    "NetworkSecurityGroupRule",
    "NfsMountConfiguration",
    "OutputFile",
    "OutputFileBlobContainerDestination",
    "OutputFileDestination",
    "OutputFileUploadConfiguration",
    "OutputFileUploadHeader",
    "ProxyAgentSettings",
    "RecentBatchJob",
    "ResizeError",
    "ResourceFile",
    "RollingUpgradePolicy",
    "SecurityProfile",
    "ServiceArtifactReference",
    "UpgradePolicy",
    "UploadBatchServiceLogsOptions",
    "UploadBatchServiceLogsResult",
    "UserAccount",
    "UserIdentity",
    "VMExtension",
    "VMExtensionInstanceView",
    "VirtualMachineConfiguration",
    "VirtualMachineInfo",
    "WindowsConfiguration",
    "WindowsUserConfiguration",
    "AllocationState",
    "AutoUserScope",
    "BatchAllTasksCompleteMode",
    "BatchErrorSourceCategory",
    "BatchJobActionKind",
    "BatchJobDefaultOrder",
    "BatchJobPreparationTaskState",
    "BatchJobReleaseTaskState",
    "BatchJobScheduleState",
    "BatchJobState",
    "BatchNodeDeallocationOption",
    "BatchNodeDisableSchedulingOption",
    "BatchNodeFillType",
    "BatchNodePlacementPolicyType",
    "BatchNodeState",
    "BatchPoolIdentityType",
    "BatchPoolLifetimeOption",
    "BatchPoolState",
    "BatchStartTaskState",
    "BatchSubtaskState",
    "BatchTaskAddStatus",
    "BatchTaskExecutionResult",
    "BatchTaskFailureMode",
    "BatchTaskState",
    "CachingType",
    "ContainerHostDataPath",
    "ContainerType",
    "ContainerWorkingDirectory",
    "DependencyAction",
    "DiffDiskPlacement",
    "DisableBatchJobOption",
    "DiskEncryptionTarget",
    "DynamicVNetAssignmentScope",
    "ElevationLevel",
    "HostEndpointSettingsModeTypes",
    "IPFamily",
    "ImageVerificationType",
    "InboundEndpointProtocol",
    "IpAddressProvisioningType",
    "LoginMode",
    "NetworkSecurityGroupRuleAccess",
    "OSType",
    "OutputFileUploadCondition",
    "SchedulingState",
    "SecurityEncryptionTypes",
    "SecurityTypes",
    "StatusLevelTypes",
    "StorageAccountType",
    "UpgradeMode",
]
__all__.extend([p for p in _patch_all if p not in __all__])  # pyright: ignore
_patch_sdk()
