<reponame>microsoftgraph/msgraph-cli-archived<gh_stars>0
# --------------------------------------------------------------------------
# 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-lines
# pylint: disable=too-many-statements

from azure.cli.core.commands.parameters import (
    get_three_state_flag,
    get_enum_type
)
from azure.cli.core.commands.validators import validate_file_or_dict
from azext_planner.action import (
    AddCategoryDescriptions,
    AddApplication,
    AddBucketTaskBoardFormat,
    AddProgressTaskBoardFormat
)


def load_arguments(self, _):

    with self.argument_context('planner group delete-planner') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group show-planner') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group update-planner') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('plans', type=validate_file_or_dict, help='Read-only. Nullable. Returns the plannerPlans owned by '
                   'the group. Expected value: json-string/@json-file.')

    with self.argument_context('planner group-planner create-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner group-planner delete-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner list-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner show-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner update-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner group-planner-plan create-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner group-planner-plan create-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner group-planner-plan delete-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan delete-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan delete-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan list-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan list-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan show-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan show-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan show-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan update-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner group-planner-plan update-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner group-planner-plan update-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner group-planner-plan-bucket create-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner group-planner-plan-bucket delete-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket list-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket show-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket update-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner group-planner-plan-bucket-task delete-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket-task delete-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket-task delete-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket-task delete-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket-task show-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket-task show-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket-task show-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket-task show-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket-task update-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner group-planner-plan-bucket-task update-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner group-planner-plan-bucket-task update-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner group-planner-plan-bucket-task update-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner group-planner-plan-task delete-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-task delete-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-task delete-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-task delete-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-task show-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-task show-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-task show-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-task show-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-task update-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner group-planner-plan-task update-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner group-planner-plan-task update-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner group-planner-plan-task update-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner planner create') as c:
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Returns a collection of the '
                   'specified buckets Expected value: json-string/@json-file.')
        c.argument('plans', type=validate_file_or_dict, help='Read-only. Nullable. Returns a collection of the '
                   'specified plans Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Returns a collection of the '
                   'specified tasks Expected value: json-string/@json-file.')

    with self.argument_context('planner planner show-planner') as c:
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner create-bucket') as c:
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner create-plan') as c:
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner create-task') as c:
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner delete-bucket') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner delete-plan') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner delete-task') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner list-bucket') as c:
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner list-plan') as c:
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner list-task') as c:
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner show-bucket') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner show-plan') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner show-task') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner update-bucket') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner update-plan') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner update-task') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-bucket create-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-bucket delete-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket list-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket show-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket update-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-bucket-task delete-assigned-to-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket-task delete-bucket-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket-task delete-detail') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket-task delete-progress-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket-task show-assigned-to-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket-task show-bucket-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket-task show-detail') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket-task show-progress-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket-task update-assigned-to-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner planner-bucket-task update-bucket-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner planner-bucket-task update-detail') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-bucket-task update-progress-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner planner-plan create-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner planner-plan create-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-plan delete-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan delete-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan delete-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan list-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan list-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan show-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan show-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan show-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan update-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner planner-plan update-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-plan update-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-plan-bucket create-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-plan-bucket delete-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket list-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket show-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket update-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-plan-bucket-task delete-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket-task delete-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket-task delete-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket-task delete-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket-task show-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket-task show-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket-task show-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket-task show-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket-task update-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner planner-plan-bucket-task update-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner planner-plan-bucket-task update-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-plan-bucket-task update-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner planner-plan-task delete-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-task delete-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-task delete-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-task delete-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-task show-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-task show-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-task show-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-task show-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-task update-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner planner-plan-task update-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner planner-plan-task update-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-plan-task update-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner planner-task delete-assigned-to-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-task delete-bucket-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-task delete-detail') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-task delete-progress-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-task show-assigned-to-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-task show-bucket-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-task show-detail') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-task show-progress-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-task update-assigned-to-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner planner-task update-bucket-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner planner-task update-detail') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-task update-progress-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner user delete-planner') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user show-planner') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user update-planner') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('plans', type=validate_file_or_dict, help='Read-only. Nullable. Returns the plannerTasks assigned '
                   'to the user. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Returns the plannerPlans shared '
                   'with the user. Expected value: json-string/@json-file.')

    with self.argument_context('planner user-planner create-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner user-planner create-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner delete-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner delete-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner list-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner list-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner show-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner show-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner update-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner user-planner update-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan create-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner user-planner-plan create-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan delete-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan delete-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan delete-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan list-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan list-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan show-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan show-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan show-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan update-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner user-planner-plan update-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner user-planner-plan update-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan-bucket create-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan-bucket delete-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket list-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket show-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket update-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan-bucket-task delete-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket-task delete-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket-task delete-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket-task delete-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket-task show-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket-task show-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket-task show-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket-task show-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket-task update-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner user-planner-plan-bucket-task update-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner user-planner-plan-bucket-task update-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner user-planner-plan-bucket-task update-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner user-planner-plan-task delete-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-task delete-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-task delete-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-task delete-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-task show-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-task show-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-task show-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-task show-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-task update-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner user-planner-plan-task update-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner user-planner-plan-task update-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner user-planner-plan-task update-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner user-planner-task delete-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-task delete-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-task delete-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-task delete-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-task show-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-task show-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-task show-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-task show-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-task update-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner user-planner-task update-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner user-planner-task update-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner user-planner-task update-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

# --------------------------------------------------------------------------
# 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-lines
# pylint: disable=too-many-statements

from azure.cli.core.commands.parameters import (
    get_three_state_flag,
    get_enum_type
)
from azure.cli.core.commands.validators import validate_file_or_dict
from azext_planner.action import (
    AddCategoryDescriptions,
    AddApplication,
    AddBucketTaskBoardFormat,
    AddProgressTaskBoardFormat
)


def load_arguments(self, _):

    with self.argument_context('planner group delete-planner') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group show-planner') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group update-planner') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('plans', type=validate_file_or_dict, help='Read-only. Nullable. Returns the plannerPlans owned by '
                   'the group. Expected value: json-string/@json-file.')

    with self.argument_context('planner group-planner create-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner group-planner delete-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner list-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner show-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner update-plan') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner group-planner-plan create-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner group-planner-plan create-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner group-planner-plan delete-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan delete-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan delete-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan list-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan list-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan show-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan show-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan show-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan update-bucket') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner group-planner-plan update-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner group-planner-plan update-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner group-planner-plan-bucket create-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner group-planner-plan-bucket delete-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket list-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket show-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket update-task') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner group-planner-plan-bucket-task delete-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket-task delete-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket-task delete-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket-task delete-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-bucket-task show-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket-task show-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket-task show-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket-task show-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-bucket-task update-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner group-planner-plan-bucket-task update-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner group-planner-plan-bucket-task update-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner group-planner-plan-bucket-task update-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner group-planner-plan-task delete-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-task delete-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-task delete-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-task delete-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner group-planner-plan-task show-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-task show-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-task show-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-task show-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner group-planner-plan-task update-assigned-to-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner group-planner-plan-task update-bucket-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner group-planner-plan-task update-detail') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner group-planner-plan-task update-progress-task-board-format') as c:
        c.argument('group_id', type=str, help='key: id of group')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner planner create') as c:
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Returns a collection of the '
                   'specified buckets Expected value: json-string/@json-file.')
        c.argument('plans', type=validate_file_or_dict, help='Read-only. Nullable. Returns a collection of the '
                   'specified plans Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Returns a collection of the '
                   'specified tasks Expected value: json-string/@json-file.')

    with self.argument_context('planner planner show-planner') as c:
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner create-bucket') as c:
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner create-plan') as c:
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner create-task') as c:
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner delete-bucket') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner delete-plan') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner delete-task') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner list-bucket') as c:
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner list-plan') as c:
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner list-task') as c:
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner show-bucket') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner show-plan') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner show-task') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner update-bucket') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner update-plan') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner update-task') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-bucket create-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-bucket delete-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket list-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket show-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket update-task') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-bucket-task delete-assigned-to-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket-task delete-bucket-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket-task delete-detail') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket-task delete-progress-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-bucket-task show-assigned-to-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket-task show-bucket-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket-task show-detail') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket-task show-progress-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-bucket-task update-assigned-to-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner planner-bucket-task update-bucket-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner planner-bucket-task update-detail') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-bucket-task update-progress-task-board-format') as c:
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner planner-plan create-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner planner-plan create-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-plan delete-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan delete-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan delete-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan list-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan list-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan show-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan show-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan show-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan update-bucket') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner planner-plan update-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-plan update-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-plan-bucket create-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-plan-bucket delete-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket list-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket show-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket update-task') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner planner-plan-bucket-task delete-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket-task delete-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket-task delete-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket-task delete-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-bucket-task show-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket-task show-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket-task show-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket-task show-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-bucket-task update-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner planner-plan-bucket-task update-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner planner-plan-bucket-task update-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-plan-bucket-task update-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner planner-plan-task delete-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-task delete-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-task delete-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-task delete-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-plan-task show-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-task show-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-task show-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-task show-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-plan-task update-assigned-to-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner planner-plan-task update-bucket-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner planner-plan-task update-detail') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-plan-task update-progress-task-board-format') as c:
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner planner-task delete-assigned-to-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-task delete-bucket-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-task delete-detail') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-task delete-progress-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner planner-task show-assigned-to-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-task show-bucket-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-task show-detail') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-task show-progress-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner planner-task update-assigned-to-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner planner-task update-bucket-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner planner-task update-detail') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner planner-task update-progress-task-board-format') as c:
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner user delete-planner') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user show-planner') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user update-planner') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('plans', type=validate_file_or_dict, help='Read-only. Nullable. Returns the plannerTasks assigned '
                   'to the user. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Returns the plannerPlans shared '
                   'with the user. Expected value: json-string/@json-file.')

    with self.argument_context('planner user-planner create-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner user-planner create-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner delete-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner delete-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner list-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner list-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner show-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner show-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner update-plan') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('created_date_time', help='Read-only. Date and time at which the plan is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('owner', type=str, help='ID of the Group that owns the plan. A valid group must exist before this '
                   'field can be set. After it is set, this property can’t be updated.')
        c.argument('title', type=str, help='Required. Title of the plan.')
        c.argument('buckets', type=validate_file_or_dict, help='Read-only. Nullable. Collection of buckets in the '
                   'plan. Expected value: json-string/@json-file.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. Collection of tasks in the plan. '
                   'Expected value: json-string/@json-file.')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions', arg_group='Details')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')

    with self.argument_context('planner user-planner update-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan create-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner user-planner-plan create-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan delete-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan delete-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan delete-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan list-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan list-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan show-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan show-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan show-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan update-bucket') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('name', type=str, help='Name of the bucket.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('plan_id', type=str, help='Plan ID to which the bucket belongs.')
        c.argument('tasks', type=validate_file_or_dict, help='Read-only. Nullable. The collection of tasks in the '
                   'bucket. Expected value: json-string/@json-file.')

    with self.argument_context('planner user-planner-plan update-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('category_descriptions', action=AddCategoryDescriptions, nargs='+',
                   help='plannerCategoryDescriptions')
        c.argument('shared_with', type=validate_file_or_dict, help='plannerUserIds Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner user-planner-plan update-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan-bucket create-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan-bucket delete-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket list-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('orderby', nargs='+', help='Order items by property values')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket show-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket update-task') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('active_checklist_item_count', type=int, help='Number of checklist items with value set to false, '
                   'representing incomplete items.')
        c.argument('applied_categories', type=validate_file_or_dict, help='plannerAppliedCategories Expected value: '
                   'json-string/@json-file.')
        c.argument('assignee_priority', type=str, help='Hint used to order items of this type in a list view. The '
                   'format is defined as outlined here.')
        c.argument('assignments', type=validate_file_or_dict, help='plannerAssignments Expected value: '
                   'json-string/@json-file.')
        c.argument('bucket_id', type=str, help='Bucket ID to which the task belongs. The bucket needs to be in the '
                   'plan that the task is in. It is 28 characters long and case-sensitive. Format validation is done '
                   'on the service.')
        c.argument('checklist_item_count', type=int, help='Number of checklist items that are present on the task.')
        c.argument('completed_date_time', help='Read-only. Date and time at which the \'percentComplete\' of the task '
                   'is set to \'100\'. The Timestamp type represents date and time information using ISO 8601 format '
                   'and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this: '
                   '\'2014-01-01T00:00:00Z\'')
        c.argument('conversation_thread_id', type=str, help='Thread ID of the conversation on the task. This is the ID '
                   'of the conversation thread object created in the group.')
        c.argument('created_date_time', help='Read-only. Date and time at which the task is created. The Timestamp '
                   'type represents date and time information using ISO 8601 format and is always in UTC time. For '
                   'example, midnight UTC on Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('due_date_time', help='Date and time at which the task is due. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('has_description', arg_type=get_three_state_flag(), help='Read-only. Value is true if the details '
                   'object of the task has a non-empty description and false otherwise.')
        c.argument('order_hint', type=str, help='Hint used to order items of this type in a list view. The format is '
                   'defined as outlined here.')
        c.argument('percent_complete', type=int, help='Percentage of task completion. When set to 100, the task is '
                   'considered completed.')
        c.argument('plan_id', type=str, help='Plan ID to which the task belongs.')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('reference_count', type=int, help='Number of external references that exist on the task.')
        c.argument('start_date_time', help='Date and time at which the task starts. The Timestamp type represents date '
                   'and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on '
                   'Jan 1, 2014 would look like this: \'2014-01-01T00:00:00Z\'')
        c.argument('title', type=str, help='Title of the task.')
        c.argument('bucket_task_board_format', action=AddBucketTaskBoardFormat, nargs='+',
                   help='plannerBucketTaskBoardTaskFormat')
        c.argument('progress_task_board_format', action=AddProgressTaskBoardFormat, nargs='+',
                   help='plannerProgressTaskBoardTaskFormat')
        c.argument('microsoft_graph_entity_id', type=str, help='Read-only.', arg_group='Details')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('description', type=str, help='Description of the task', arg_group='Details')
        c.argument('microsoft_graph_planner_preview_type', arg_type=get_enum_type(['automatic', 'noPreview',
                                                                                   'checklist', 'description',
                                                                                   'reference']), help='',
                   arg_group='Details')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.', arg_group='Details')
        c.argument('id1', type=str, help='Read-only.', arg_group='Assigned To Task Board Format')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.', arg_group='Assigned To Task Board Format')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.', arg_group='Assigned To Task Board Format')
        c.argument('application', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('device', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('user', action=AddApplication, nargs='+', help='identity', arg_group='Created By')
        c.argument('microsoft_graph_identity_application', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_device', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')
        c.argument('microsoft_graph_identity_user', action=AddApplication, nargs='+', help='identity',
                   arg_group='Completed By')

    with self.argument_context('planner user-planner-plan-bucket-task delete-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket-task delete-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket-task delete-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket-task delete-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-bucket-task show-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket-task show-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket-task show-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket-task show-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-bucket-task update-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner user-planner-plan-bucket-task update-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner user-planner-plan-bucket-task update-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner user-planner-plan-bucket-task update-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_bucket_id', type=str, help='key: id of plannerBucket')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner user-planner-plan-task delete-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-task delete-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-task delete-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-task delete-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-plan-task show-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-task show-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-task show-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-task show-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-plan-task update-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner user-planner-plan-task update-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner user-planner-plan-task update-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner user-planner-plan-task update-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_plan_id', type=str, help='key: id of plannerPlan')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')

    with self.argument_context('planner user-planner-task delete-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-task delete-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-task delete-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-task delete-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('if_match', type=str, help='ETag')

    with self.argument_context('planner user-planner-task show-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-task show-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-task show-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-task show-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('select', nargs='+', help='Select properties to be returned')
        c.argument('expand', nargs='+', help='Expand related entities')

    with self.argument_context('planner user-planner-task update-assigned-to-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hints_by_assignee', type=validate_file_or_dict, help='plannerOrderHintsByAssignee Expected '
                   'value: json-string/@json-file.')
        c.argument('unassigned_order_hint', type=str, help='Hint value used to order the task on the AssignedTo view '
                   'of the Task Board when the task is not assigned to anyone, or if the orderHintsByAssignee '
                   'dictionary does not provide an order hint for the user the task is assigned to. The format is '
                   'defined as outlined here.')

    with self.argument_context('planner user-planner-task update-bucket-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint used to order tasks in the Bucket view of the Task Board. The '
                   'format is defined as outlined here.')

    with self.argument_context('planner user-planner-task update-detail') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('checklist', type=validate_file_or_dict, help='plannerChecklistItems Expected value: '
                   'json-string/@json-file.')
        c.argument('description', type=str, help='Description of the task')
        c.argument('preview_type', arg_type=get_enum_type(['automatic', 'noPreview', 'checklist', 'description',
                                                           'reference']), help='')
        c.argument('references', type=validate_file_or_dict, help='plannerExternalReferences Expected value: '
                   'json-string/@json-file.')

    with self.argument_context('planner user-planner-task update-progress-task-board-format') as c:
        c.argument('user_id', type=str, help='key: id of user')
        c.argument('planner_task_id', type=str, help='key: id of plannerTask')
        c.argument('id_', options_list=['--id'], type=str, help='Read-only.')
        c.argument('order_hint', type=str, help='Hint value used to order the task on the Progress view of the Task '
                   'Board. The format is defined as outlined here.')
# -------------------------------------------------------------------------- # 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-lines # pylint: disable=too-many-statements