# --------------------------------------------------------------------------
# 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.
# --------------------------------------------------------------------------
# pylint: disable=too-many-statements
# pylint: disable=too-many-locals
# pylint: disable=bad-continuation
# pylint: disable=line-too-long

from azure.cli.core.commands import CliCommandType
from azext_desktopvirtualization.generated._client_factory import (
    cf_workspace,
    cf_application_group,
    cf_host_pool,
)


desktopvirtualization_application_group = CliCommandType(
    operations_tmpl='azext_desktopvirtualization.vendored_sdks.desktopvirtualization.operations._application_groups_operations#ApplicationGroupsOperations.{}',
    client_factory=cf_application_group,
)


desktopvirtualization_host_pool = CliCommandType(
    operations_tmpl='azext_desktopvirtualization.vendored_sdks.desktopvirtualization.operations._host_pools_operations#HostPoolsOperations.{}',
    client_factory=cf_host_pool,
)


desktopvirtualization_workspace = CliCommandType(
    operations_tmpl='azext_desktopvirtualization.vendored_sdks.desktopvirtualization.operations._workspaces_operations#WorkspacesOperations.{}',
    client_factory=cf_workspace,
)


def load_command_table(self, _):

    with self.command_group('desktopvirtualization applicationgroup', desktopvirtualization_application_group,
                            client_factory=cf_application_group) as g:
        g.custom_command('list', 'desktopvirtualization_applicationgroup_list')
        g.custom_show_command('show', 'desktopvirtualization_applicationgroup_show')
        g.custom_command('create', 'desktopvirtualization_applicationgroup_create')
        g.custom_command('update', 'desktopvirtualization_applicationgroup_update')
        g.custom_command('delete', 'desktopvirtualization_applicationgroup_delete')

    with self.command_group('desktopvirtualization hostpool', desktopvirtualization_host_pool,
                            client_factory=cf_host_pool) as g:
        g.custom_command('list', 'desktopvirtualization_hostpool_list')
        g.custom_show_command('show', 'desktopvirtualization_hostpool_show')
        g.custom_command('create', 'desktopvirtualization_hostpool_create')
        g.custom_command('update', 'desktopvirtualization_hostpool_update')
        g.custom_command('delete', 'desktopvirtualization_hostpool_delete')
        g.custom_command('retrieve-registration-token', 'desktopvirtualization_hostpool_retrieve_registration_token')

    with self.command_group('desktopvirtualization workspace', desktopvirtualization_workspace,
                            client_factory=cf_workspace) as g:
        g.custom_command('list', 'desktopvirtualization_workspace_list')
        g.custom_show_command('show', 'desktopvirtualization_workspace_show')
        g.custom_command('create', 'desktopvirtualization_workspace_create')
        g.custom_command('update', 'desktopvirtualization_workspace_update')
        g.custom_command('delete', 'desktopvirtualization_workspace_delete')

    with self.command_group('desktopvirtualization'):
        pass
