<reponame>thewahome/msgraph-cli<filename>msgraph-cli-extensions/beta/cloudcommunications_beta/azext_cloudcommunications_beta/generated/custom.py
# --------------------------------------------------------------------------
# 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


def cloudcommunications_communication_cloud_communication_show_cloud_communication(client,
                                                                                   select=None,
                                                                                   expand=None):
    return client.get_cloud_communications(select=select,
                                           expand=expand)


def cloudcommunications_communication_cloud_communication_update_cloud_communication(client,
                                                                                     id_=None,
                                                                                     calls=None,
                                                                                     call_records=None,
                                                                                     online_meetings=None,
                                                                                     presences=None):
    body = {}
    body['id'] = id_
    body['calls'] = calls
    body['call_records'] = call_records
    body['online_meetings'] = online_meetings
    body['presences'] = presences
    return client.update_cloud_communications(body=body)


def cloudcommunications_communication_create_call(client,
                                                  id_=None,
                                                  active_modalities=None,
                                                  callback_uri=None,
                                                  call_chain_id=None,
                                                  call_options=None,
                                                  call_routes=None,
                                                  chat_info=None,
                                                  direction=None,
                                                  meeting_capability=None,
                                                  my_participant_id=None,
                                                  requested_modalities=None,
                                                  result_info=None,
                                                  ringing_timeout_in_seconds=None,
                                                  routing_policies=None,
                                                  state=None,
                                                  subject=None,
                                                  targets=None,
                                                  tenant_id=None,
                                                  termination_reason=None,
                                                  tone_info=None,
                                                  transcription=None,
                                                  audio_routing_groups=None,
                                                  operations=None,
                                                  participants=None,
                                                  country_code=None,
                                                  endpoint_type=None,
                                                  identity=None,
                                                  language_id=None,
                                                  region=None,
                                                  allow_conversation_without_host=None,
                                                  audio=None,
                                                  remove_from_default_audio_group=None,
                                                  observed_participant_id=None,
                                                  on_behalf_of=None,
                                                  source_participant_id=None,
                                                  transferor=None,
                                                  microsoft_graph_participant_info_country_code=None,
                                                  microsoft_graph_endpoint_type=None,
                                                  microsoft_graph_identity_set_identity=None,
                                                  microsoft_graph_participant_info_language_id=None,
                                                  microsoft_graph_participant_info_region=None):
    body = {}
    body['id'] = id_
    body['active_modalities'] = active_modalities
    body['callback_uri'] = callback_uri
    body['call_chain_id'] = call_chain_id
    body['call_options'] = call_options
    body['call_routes'] = call_routes
    body['chat_info'] = chat_info
    body['direction'] = direction
    body['meeting_capability'] = meeting_capability
    body['my_participant_id'] = my_participant_id
    body['requested_modalities'] = requested_modalities
    body['result_info'] = result_info
    body['ringing_timeout_in_seconds'] = ringing_timeout_in_seconds
    body['routing_policies'] = routing_policies
    body['state'] = state
    body['subject'] = subject
    body['targets'] = targets
    body['tenant_id'] = tenant_id
    body['termination_reason'] = termination_reason
    body['tone_info'] = tone_info
    body['transcription'] = transcription
    body['audio_routing_groups'] = audio_routing_groups
    body['operations'] = operations
    body['participants'] = participants
    body['source'] = {}
    body['source']['country_code'] = country_code
    body['source']['endpoint_type'] = endpoint_type
    body['source']['identity'] = identity
    body['source']['language_id'] = language_id
    body['source']['region'] = region
    body['meeting_info'] = {}
    body['meeting_info']['allow_conversation_without_host'] = allow_conversation_without_host
    body['media_state'] = {}
    body['media_state']['audio'] = audio
    body['media_config'] = {}
    body['media_config']['remove_from_default_audio_group'] = remove_from_default_audio_group
    body['incoming_context'] = {}
    body['incoming_context']['observed_participant_id'] = observed_participant_id
    body['incoming_context']['on_behalf_of'] = on_behalf_of
    body['incoming_context']['source_participant_id'] = source_participant_id
    body['incoming_context']['transferor'] = transferor
    body['answered_by'] = {}
    body['answered_by']['country_code'] = microsoft_graph_participant_info_country_code
    body['answered_by']['endpoint_type'] = microsoft_graph_endpoint_type
    body['answered_by']['identity'] = microsoft_graph_identity_set_identity
    body['answered_by']['language_id'] = microsoft_graph_participant_info_language_id
    body['answered_by']['region'] = microsoft_graph_participant_info_region
    return client.create_calls(body=body)


def cloudcommunications_communication_create_call_record(client,
                                                         id_=None,
                                                         end_date_time=None,
                                                         join_web_url=None,
                                                         last_modified_date_time=None,
                                                         modalities=None,
                                                         participants=None,
                                                         start_date_time=None,
                                                         type_=None,
                                                         version=None,
                                                         sessions=None,
                                                         application=None,
                                                         device=None,
                                                         user=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['join_web_url'] = join_web_url
    body['last_modified_date_time'] = last_modified_date_time
    body['modalities'] = modalities
    body['participants'] = participants
    body['start_date_time'] = start_date_time
    body['type'] = type_
    body['version'] = version
    body['sessions'] = sessions
    body['organizer'] = {}
    body['organizer']['application'] = application
    body['organizer']['device'] = device
    body['organizer']['user'] = user
    return client.create_call_records(body=body)


def cloudcommunications_communication_create_online_meeting(client,
                                                            id_=None,
                                                            access_level=None,
                                                            allowed_presenters=None,
                                                            audio_conferencing=None,
                                                            canceled_date_time=None,
                                                            capabilities=None,
                                                            chat_info=None,
                                                            creation_date_time=None,
                                                            end_date_time=None,
                                                            entry_exit_announcement=None,
                                                            expiration_date_time=None,
                                                            external_id=None,
                                                            is_broadcast=None,
                                                            is_cancelled=None,
                                                            is_entry_exit_announced=None,
                                                            join_information=None,
                                                            join_url=None,
                                                            lobby_bypass_settings=None,
                                                            start_date_time=None,
                                                            subject=None,
                                                            video_teleconference_id=None,
                                                            attendees=None,
                                                            contributors=None,
                                                            organizer=None,
                                                            producers=None):
    body = {}
    body['id'] = id_
    body['access_level'] = access_level
    body['allowed_presenters'] = allowed_presenters
    body['audio_conferencing'] = audio_conferencing
    body['canceled_date_time'] = canceled_date_time
    body['capabilities'] = capabilities
    body['chat_info'] = chat_info
    body['creation_date_time'] = creation_date_time
    body['end_date_time'] = end_date_time
    body['entry_exit_announcement'] = entry_exit_announcement
    body['expiration_date_time'] = expiration_date_time
    body['external_id'] = external_id
    body['is_broadcast'] = is_broadcast
    body['is_cancelled'] = is_cancelled
    body['is_entry_exit_announced'] = is_entry_exit_announced
    body['join_information'] = join_information
    body['join_url'] = join_url
    body['lobby_bypass_settings'] = lobby_bypass_settings
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['video_teleconference_id'] = video_teleconference_id
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.create_online_meetings(body=body)


def cloudcommunications_communication_create_presence(client,
                                                      id_=None,
                                                      activity=None,
                                                      availability=None):
    body = {}
    body['id'] = id_
    body['activity'] = activity
    body['availability'] = availability
    return client.create_presences(body=body)


def cloudcommunications_communication_delete_call(client,
                                                  call_id,
                                                  if_match=None):
    return client.delete_calls(call_id=call_id,
                               if_match=if_match)


def cloudcommunications_communication_delete_call_record(client,
                                                         call_record_id,
                                                         if_match=None):
    return client.delete_call_records(call_record_id=call_record_id,
                                      if_match=if_match)


def cloudcommunications_communication_delete_online_meeting(client,
                                                            online_meeting_id,
                                                            if_match=None):
    return client.delete_online_meetings(online_meeting_id=online_meeting_id,
                                         if_match=if_match)


def cloudcommunications_communication_delete_presence(client,
                                                      presence_id,
                                                      if_match=None):
    return client.delete_presences(presence_id=presence_id,
                                   if_match=if_match)


def cloudcommunications_communication_get_presence_by_user_id(client,
                                                              ids=None):
    body = {}
    body['ids'] = ids
    return client.get_presences_by_user_id(body=body)


def cloudcommunications_communication_list_call(client,
                                                orderby=None,
                                                select=None,
                                                expand=None):
    return client.list_calls(orderby=orderby,
                             select=select,
                             expand=expand)


def cloudcommunications_communication_list_call_record(client,
                                                       orderby=None,
                                                       select=None,
                                                       expand=None):
    return client.list_call_records(orderby=orderby,
                                    select=select,
                                    expand=expand)


def cloudcommunications_communication_list_online_meeting(client,
                                                          orderby=None,
                                                          select=None,
                                                          expand=None):
    return client.list_online_meetings(orderby=orderby,
                                       select=select,
                                       expand=expand)


def cloudcommunications_communication_list_presence(client,
                                                    orderby=None,
                                                    select=None,
                                                    expand=None):
    return client.list_presences(orderby=orderby,
                                 select=select,
                                 expand=expand)


def cloudcommunications_communication_show_call(client,
                                                call_id,
                                                select=None,
                                                expand=None):
    return client.get_calls(call_id=call_id,
                            select=select,
                            expand=expand)


def cloudcommunications_communication_show_call_record(client,
                                                       call_record_id,
                                                       select=None,
                                                       expand=None):
    return client.get_call_records(call_record_id=call_record_id,
                                   select=select,
                                   expand=expand)


def cloudcommunications_communication_show_online_meeting(client,
                                                          online_meeting_id,
                                                          select=None,
                                                          expand=None):
    return client.get_online_meetings(online_meeting_id=online_meeting_id,
                                      select=select,
                                      expand=expand)


def cloudcommunications_communication_show_presence(client,
                                                    presence_id,
                                                    select=None,
                                                    expand=None):
    return client.get_presences(presence_id=presence_id,
                                select=select,
                                expand=expand)


def cloudcommunications_communication_update_call(client,
                                                  call_id,
                                                  id_=None,
                                                  active_modalities=None,
                                                  callback_uri=None,
                                                  call_chain_id=None,
                                                  call_options=None,
                                                  call_routes=None,
                                                  chat_info=None,
                                                  direction=None,
                                                  meeting_capability=None,
                                                  my_participant_id=None,
                                                  requested_modalities=None,
                                                  result_info=None,
                                                  ringing_timeout_in_seconds=None,
                                                  routing_policies=None,
                                                  state=None,
                                                  subject=None,
                                                  targets=None,
                                                  tenant_id=None,
                                                  termination_reason=None,
                                                  tone_info=None,
                                                  transcription=None,
                                                  audio_routing_groups=None,
                                                  operations=None,
                                                  participants=None,
                                                  country_code=None,
                                                  endpoint_type=None,
                                                  identity=None,
                                                  language_id=None,
                                                  region=None,
                                                  allow_conversation_without_host=None,
                                                  audio=None,
                                                  remove_from_default_audio_group=None,
                                                  observed_participant_id=None,
                                                  on_behalf_of=None,
                                                  source_participant_id=None,
                                                  transferor=None,
                                                  microsoft_graph_participant_info_country_code=None,
                                                  microsoft_graph_endpoint_type=None,
                                                  microsoft_graph_identity_set_identity=None,
                                                  microsoft_graph_participant_info_language_id=None,
                                                  microsoft_graph_participant_info_region=None):
    body = {}
    body['id'] = id_
    body['active_modalities'] = active_modalities
    body['callback_uri'] = callback_uri
    body['call_chain_id'] = call_chain_id
    body['call_options'] = call_options
    body['call_routes'] = call_routes
    body['chat_info'] = chat_info
    body['direction'] = direction
    body['meeting_capability'] = meeting_capability
    body['my_participant_id'] = my_participant_id
    body['requested_modalities'] = requested_modalities
    body['result_info'] = result_info
    body['ringing_timeout_in_seconds'] = ringing_timeout_in_seconds
    body['routing_policies'] = routing_policies
    body['state'] = state
    body['subject'] = subject
    body['targets'] = targets
    body['tenant_id'] = tenant_id
    body['termination_reason'] = termination_reason
    body['tone_info'] = tone_info
    body['transcription'] = transcription
    body['audio_routing_groups'] = audio_routing_groups
    body['operations'] = operations
    body['participants'] = participants
    body['source'] = {}
    body['source']['country_code'] = country_code
    body['source']['endpoint_type'] = endpoint_type
    body['source']['identity'] = identity
    body['source']['language_id'] = language_id
    body['source']['region'] = region
    body['meeting_info'] = {}
    body['meeting_info']['allow_conversation_without_host'] = allow_conversation_without_host
    body['media_state'] = {}
    body['media_state']['audio'] = audio
    body['media_config'] = {}
    body['media_config']['remove_from_default_audio_group'] = remove_from_default_audio_group
    body['incoming_context'] = {}
    body['incoming_context']['observed_participant_id'] = observed_participant_id
    body['incoming_context']['on_behalf_of'] = on_behalf_of
    body['incoming_context']['source_participant_id'] = source_participant_id
    body['incoming_context']['transferor'] = transferor
    body['answered_by'] = {}
    body['answered_by']['country_code'] = microsoft_graph_participant_info_country_code
    body['answered_by']['endpoint_type'] = microsoft_graph_endpoint_type
    body['answered_by']['identity'] = microsoft_graph_identity_set_identity
    body['answered_by']['language_id'] = microsoft_graph_participant_info_language_id
    body['answered_by']['region'] = microsoft_graph_participant_info_region
    return client.update_calls(call_id=call_id,
                               body=body)


def cloudcommunications_communication_update_call_record(client,
                                                         call_record_id,
                                                         id_=None,
                                                         end_date_time=None,
                                                         join_web_url=None,
                                                         last_modified_date_time=None,
                                                         modalities=None,
                                                         participants=None,
                                                         start_date_time=None,
                                                         type_=None,
                                                         version=None,
                                                         sessions=None,
                                                         application=None,
                                                         device=None,
                                                         user=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['join_web_url'] = join_web_url
    body['last_modified_date_time'] = last_modified_date_time
    body['modalities'] = modalities
    body['participants'] = participants
    body['start_date_time'] = start_date_time
    body['type'] = type_
    body['version'] = version
    body['sessions'] = sessions
    body['organizer'] = {}
    body['organizer']['application'] = application
    body['organizer']['device'] = device
    body['organizer']['user'] = user
    return client.update_call_records(call_record_id=call_record_id,
                                      body=body)


def cloudcommunications_communication_update_online_meeting(client,
                                                            online_meeting_id,
                                                            id_=None,
                                                            access_level=None,
                                                            allowed_presenters=None,
                                                            audio_conferencing=None,
                                                            canceled_date_time=None,
                                                            capabilities=None,
                                                            chat_info=None,
                                                            creation_date_time=None,
                                                            end_date_time=None,
                                                            entry_exit_announcement=None,
                                                            expiration_date_time=None,
                                                            external_id=None,
                                                            is_broadcast=None,
                                                            is_cancelled=None,
                                                            is_entry_exit_announced=None,
                                                            join_information=None,
                                                            join_url=None,
                                                            lobby_bypass_settings=None,
                                                            start_date_time=None,
                                                            subject=None,
                                                            video_teleconference_id=None,
                                                            attendees=None,
                                                            contributors=None,
                                                            organizer=None,
                                                            producers=None):
    body = {}
    body['id'] = id_
    body['access_level'] = access_level
    body['allowed_presenters'] = allowed_presenters
    body['audio_conferencing'] = audio_conferencing
    body['canceled_date_time'] = canceled_date_time
    body['capabilities'] = capabilities
    body['chat_info'] = chat_info
    body['creation_date_time'] = creation_date_time
    body['end_date_time'] = end_date_time
    body['entry_exit_announcement'] = entry_exit_announcement
    body['expiration_date_time'] = expiration_date_time
    body['external_id'] = external_id
    body['is_broadcast'] = is_broadcast
    body['is_cancelled'] = is_cancelled
    body['is_entry_exit_announced'] = is_entry_exit_announced
    body['join_information'] = join_information
    body['join_url'] = join_url
    body['lobby_bypass_settings'] = lobby_bypass_settings
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['video_teleconference_id'] = video_teleconference_id
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.update_online_meetings(online_meeting_id=online_meeting_id,
                                         body=body)


def cloudcommunications_communication_update_presence(client,
                                                      presence_id,
                                                      id_=None,
                                                      activity=None,
                                                      availability=None):
    body = {}
    body['id'] = id_
    body['activity'] = activity
    body['availability'] = availability
    return client.update_presences(presence_id=presence_id,
                                   body=body)


def cloudcommunications_communication_call_record_create_session(client,
                                                                 call_record_id,
                                                                 id_=None,
                                                                 end_date_time=None,
                                                                 failure_info=None,
                                                                 modalities=None,
                                                                 start_date_time=None,
                                                                 segments=None,
                                                                 user_agent=None,
                                                                 microsoft_graph_call_records_user_agent=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['failure_info'] = failure_info
    body['modalities'] = modalities
    body['start_date_time'] = start_date_time
    body['segments'] = segments
    body['caller'] = {}
    body['caller']['user_agent'] = user_agent
    body['callee'] = {}
    body['callee']['user_agent'] = microsoft_graph_call_records_user_agent
    return client.create_sessions(call_record_id=call_record_id,
                                  body=body)


def cloudcommunications_communication_call_record_delete_session(client,
                                                                 call_record_id,
                                                                 session_id,
                                                                 if_match=None):
    return client.delete_sessions(call_record_id=call_record_id,
                                  session_id=session_id,
                                  if_match=if_match)


def cloudcommunications_communication_call_record_list_session(client,
                                                               call_record_id,
                                                               orderby=None,
                                                               select=None,
                                                               expand=None):
    return client.list_sessions(call_record_id=call_record_id,
                                orderby=orderby,
                                select=select,
                                expand=expand)


def cloudcommunications_communication_call_record_show_session(client,
                                                               call_record_id,
                                                               session_id,
                                                               select=None,
                                                               expand=None):
    return client.get_sessions(call_record_id=call_record_id,
                               session_id=session_id,
                               select=select,
                               expand=expand)


def cloudcommunications_communication_call_record_update_session(client,
                                                                 call_record_id,
                                                                 session_id,
                                                                 id_=None,
                                                                 end_date_time=None,
                                                                 failure_info=None,
                                                                 modalities=None,
                                                                 start_date_time=None,
                                                                 segments=None,
                                                                 user_agent=None,
                                                                 microsoft_graph_call_records_user_agent=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['failure_info'] = failure_info
    body['modalities'] = modalities
    body['start_date_time'] = start_date_time
    body['segments'] = segments
    body['caller'] = {}
    body['caller']['user_agent'] = user_agent
    body['callee'] = {}
    body['callee']['user_agent'] = microsoft_graph_call_records_user_agent
    return client.update_sessions(call_record_id=call_record_id,
                                  session_id=session_id,
                                  body=body)


def cloudcommunications_communication_call_record_session_create_segment(client,
                                                                         call_record_id,
                                                                         session_id,
                                                                         id_=None,
                                                                         end_date_time=None,
                                                                         failure_info=None,
                                                                         media=None,
                                                                         start_date_time=None,
                                                                         user_agent=None,
                                                                         microsoft_graph_call_records_user_agent=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['failure_info'] = failure_info
    body['media'] = media
    body['start_date_time'] = start_date_time
    body['caller'] = {}
    body['caller']['user_agent'] = user_agent
    body['callee'] = {}
    body['callee']['user_agent'] = microsoft_graph_call_records_user_agent
    return client.create_segments(call_record_id=call_record_id,
                                  session_id=session_id,
                                  body=body)


def cloudcommunications_communication_call_record_session_delete_segment(client,
                                                                         call_record_id,
                                                                         session_id,
                                                                         segment_id,
                                                                         if_match=None):
    return client.delete_segments(call_record_id=call_record_id,
                                  session_id=session_id,
                                  segment_id=segment_id,
                                  if_match=if_match)


def cloudcommunications_communication_call_record_session_list_segment(client,
                                                                       call_record_id,
                                                                       session_id,
                                                                       orderby=None,
                                                                       select=None,
                                                                       expand=None):
    return client.list_segments(call_record_id=call_record_id,
                                session_id=session_id,
                                orderby=orderby,
                                select=select,
                                expand=expand)


def cloudcommunications_communication_call_record_session_show_segment(client,
                                                                       call_record_id,
                                                                       session_id,
                                                                       segment_id,
                                                                       select=None,
                                                                       expand=None):
    return client.get_segments(call_record_id=call_record_id,
                               session_id=session_id,
                               segment_id=segment_id,
                               select=select,
                               expand=expand)


def cloudcommunications_communication_call_record_session_update_segment(client,
                                                                         call_record_id,
                                                                         session_id,
                                                                         segment_id,
                                                                         id_=None,
                                                                         end_date_time=None,
                                                                         failure_info=None,
                                                                         media=None,
                                                                         start_date_time=None,
                                                                         user_agent=None,
                                                                         microsoft_graph_call_records_user_agent=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['failure_info'] = failure_info
    body['media'] = media
    body['start_date_time'] = start_date_time
    body['caller'] = {}
    body['caller']['user_agent'] = user_agent
    body['callee'] = {}
    body['callee']['user_agent'] = microsoft_graph_call_records_user_agent
    return client.update_segments(call_record_id=call_record_id,
                                  session_id=session_id,
                                  segment_id=segment_id,
                                  body=body)


def cloudcommunications_communication_call_answer(client,
                                                  call_id,
                                                  callback_uri=None,
                                                  accepted_modalities=None,
                                                  remove_from_default_audio_group=None):
    body = {}
    body['callback_uri'] = callback_uri
    body['accepted_modalities'] = accepted_modalities
    body['media_config'] = {}
    body['media_config']['remove_from_default_audio_group'] = remove_from_default_audio_group
    return client.answer(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_cancel_media_processing(client,
                                                                   call_id,
                                                                   client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.cancel_media_processing(call_id=call_id,
                                          body=body)


def cloudcommunications_communication_call_change_screen_sharing_role(client,
                                                                      call_id,
                                                                      role=None):
    body = {}
    body['role'] = role
    return client.change_screen_sharing_role(call_id=call_id,
                                             body=body)


def cloudcommunications_communication_call_create_audio_routing_group(client,
                                                                      call_id,
                                                                      id_=None,
                                                                      receivers=None,
                                                                      routing_mode=None,
                                                                      sources=None):
    body = {}
    body['id'] = id_
    body['receivers'] = receivers
    body['routing_mode'] = routing_mode
    body['sources'] = sources
    return client.create_audio_routing_groups(call_id=call_id,
                                              body=body)


def cloudcommunications_communication_call_create_operation(client,
                                                            call_id,
                                                            id_=None,
                                                            client_context=None,
                                                            result_info=None,
                                                            status=None):
    body = {}
    body['id'] = id_
    body['client_context'] = client_context
    body['result_info'] = result_info
    body['status'] = status
    return client.create_operations(call_id=call_id,
                                    body=body)


def cloudcommunications_communication_call_create_participant(client,
                                                              call_id,
                                                              id_=None,
                                                              is_in_lobby=None,
                                                              is_muted=None,
                                                              media_streams=None,
                                                              metadata=None,
                                                              initiated_by=None,
                                                              initiator=None,
                                                              recording_status=None,
                                                              country_code=None,
                                                              endpoint_type=None,
                                                              identity=None,
                                                              language_id=None,
                                                              region=None):
    body = {}
    body['id'] = id_
    body['is_in_lobby'] = is_in_lobby
    body['is_muted'] = is_muted
    body['media_streams'] = media_streams
    body['metadata'] = metadata
    body['recording_info'] = {}
    body['recording_info']['initiated_by'] = initiated_by
    body['recording_info']['initiator'] = initiator
    body['recording_info']['recording_status'] = recording_status
    body['info'] = {}
    body['info']['country_code'] = country_code
    body['info']['endpoint_type'] = endpoint_type
    body['info']['identity'] = identity
    body['info']['language_id'] = language_id
    body['info']['region'] = region
    return client.create_participants(call_id=call_id,
                                      body=body)


def cloudcommunications_communication_call_delete_audio_routing_group(client,
                                                                      call_id,
                                                                      audio_routing_group_id,
                                                                      if_match=None):
    return client.delete_audio_routing_groups(call_id=call_id,
                                              audio_routing_group_id=audio_routing_group_id,
                                              if_match=if_match)


def cloudcommunications_communication_call_delete_operation(client,
                                                            call_id,
                                                            comms_operation_id,
                                                            if_match=None):
    return client.delete_operations(call_id=call_id,
                                    comms_operation_id=comms_operation_id,
                                    if_match=if_match)


def cloudcommunications_communication_call_delete_participant(client,
                                                              call_id,
                                                              participant_id,
                                                              if_match=None):
    return client.delete_participants(call_id=call_id,
                                      participant_id=participant_id,
                                      if_match=if_match)


def cloudcommunications_communication_call_keep_alive(client,
                                                      call_id):
    return client.keep_alive(call_id=call_id)


def cloudcommunications_communication_call_list_audio_routing_group(client,
                                                                    call_id,
                                                                    orderby=None,
                                                                    select=None,
                                                                    expand=None):
    return client.list_audio_routing_groups(call_id=call_id,
                                            orderby=orderby,
                                            select=select,
                                            expand=expand)


def cloudcommunications_communication_call_list_operation(client,
                                                          call_id,
                                                          orderby=None,
                                                          select=None,
                                                          expand=None):
    return client.list_operations(call_id=call_id,
                                  orderby=orderby,
                                  select=select,
                                  expand=expand)


def cloudcommunications_communication_call_list_participant(client,
                                                            call_id,
                                                            orderby=None,
                                                            select=None,
                                                            expand=None):
    return client.list_participants(call_id=call_id,
                                    orderby=orderby,
                                    select=select,
                                    expand=expand)


def cloudcommunications_communication_call_log_teleconference_device_quality(client,
                                                                             call_chain_id=None,
                                                                             cloud_service_deployment_environment=None,
                                                                             cloud_service_deployment_id=None,
                                                                             cloud_service_instance_name=None,
                                                                             cloud_service_name=None,
                                                                             device_description=None,
                                                                             device_name=None,
                                                                             media_leg_id=None,
                                                                             media_quality_list=None,
                                                                             participant_id=None):
    body = {}
    body['quality'] = {}
    body['quality']['call_chain_id'] = call_chain_id
    body['quality']['cloud_service_deployment_environment'] = cloud_service_deployment_environment
    body['quality']['cloud_service_deployment_id'] = cloud_service_deployment_id
    body['quality']['cloud_service_instance_name'] = cloud_service_instance_name
    body['quality']['cloud_service_name'] = cloud_service_name
    body['quality']['device_description'] = device_description
    body['quality']['device_name'] = device_name
    body['quality']['media_leg_id'] = media_leg_id
    body['quality']['media_quality_list'] = media_quality_list
    body['quality']['participant_id'] = participant_id
    return client.log_teleconference_device_quality(body=body)


def cloudcommunications_communication_call_mute(client,
                                                call_id,
                                                client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.mute(call_id=call_id,
                       body=body)


def cloudcommunications_communication_call_play_prompt(client,
                                                       call_id,
                                                       prompts=None,
                                                       loop=None,
                                                       client_context=None):
    if loop is None:
        loop = False
    body = {}
    body['prompts'] = prompts
    body['loop'] = False if loop is None else loop
    body['client_context'] = client_context
    return client.play_prompt(call_id=call_id,
                              body=body)


def cloudcommunications_communication_call_record(client,
                                                  call_id,
                                                  prompts=None,
                                                  barge_in_allowed=None,
                                                  initial_silence_timeout_in_seconds=None,
                                                  max_silence_timeout_in_seconds=None,
                                                  max_record_duration_in_seconds=None,
                                                  play_beep=None,
                                                  stream_while_recording=None,
                                                  stop_tones=None,
                                                  client_context=None):
    if barge_in_allowed is None:
        barge_in_allowed = False
    if play_beep is None:
        play_beep = False
    if stream_while_recording is None:
        stream_while_recording = False
    body = {}
    body['prompts'] = prompts
    body['barge_in_allowed'] = False if barge_in_allowed is None else barge_in_allowed
    body['initial_silence_timeout_in_seconds'] = initial_silence_timeout_in_seconds
    body['max_silence_timeout_in_seconds'] = max_silence_timeout_in_seconds
    body['max_record_duration_in_seconds'] = max_record_duration_in_seconds
    body['play_beep'] = False if play_beep is None else play_beep
    body['stream_while_recording'] = False if stream_while_recording is None else stream_while_recording
    body['stop_tones'] = stop_tones
    body['client_context'] = client_context
    return client.record(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_record_response(client,
                                                           call_id,
                                                           prompts=None,
                                                           barge_in_allowed=None,
                                                           initial_silence_timeout_in_seconds=None,
                                                           max_silence_timeout_in_seconds=None,
                                                           max_record_duration_in_seconds=None,
                                                           play_beep=None,
                                                           stream_while_recording=None,
                                                           stop_tones=None,
                                                           client_context=None):
    if barge_in_allowed is None:
        barge_in_allowed = False
    if play_beep is None:
        play_beep = False
    if stream_while_recording is None:
        stream_while_recording = False
    body = {}
    body['prompts'] = prompts
    body['barge_in_allowed'] = False if barge_in_allowed is None else barge_in_allowed
    body['initial_silence_timeout_in_seconds'] = initial_silence_timeout_in_seconds
    body['max_silence_timeout_in_seconds'] = max_silence_timeout_in_seconds
    body['max_record_duration_in_seconds'] = max_record_duration_in_seconds
    body['play_beep'] = False if play_beep is None else play_beep
    body['stream_while_recording'] = False if stream_while_recording is None else stream_while_recording
    body['stop_tones'] = stop_tones
    body['client_context'] = client_context
    return client.record_response(call_id=call_id,
                                  body=body)


def cloudcommunications_communication_call_redirect(client,
                                                    call_id,
                                                    targets=None,
                                                    target_disposition=None,
                                                    timeout=None,
                                                    mask_callee=None,
                                                    mask_caller=None,
                                                    callback_uri=None):
    if mask_callee is None:
        mask_callee = False
    if mask_caller is None:
        mask_caller = False
    body = {}
    body['targets'] = targets
    body['target_disposition'] = target_disposition
    body['timeout'] = timeout
    body['mask_callee'] = False if mask_callee is None else mask_callee
    body['mask_caller'] = False if mask_caller is None else mask_caller
    body['callback_uri'] = callback_uri
    return client.redirect(call_id=call_id,
                           body=body)


def cloudcommunications_communication_call_reject(client,
                                                  call_id,
                                                  reason=None,
                                                  callback_uri=None):
    body = {}
    body['reason'] = reason
    body['callback_uri'] = callback_uri
    return client.reject(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_show_audio_routing_group(client,
                                                                    call_id,
                                                                    audio_routing_group_id,
                                                                    select=None,
                                                                    expand=None):
    return client.get_audio_routing_groups(call_id=call_id,
                                           audio_routing_group_id=audio_routing_group_id,
                                           select=select,
                                           expand=expand)


def cloudcommunications_communication_call_show_operation(client,
                                                          call_id,
                                                          comms_operation_id,
                                                          select=None,
                                                          expand=None):
    return client.get_operations(call_id=call_id,
                                 comms_operation_id=comms_operation_id,
                                 select=select,
                                 expand=expand)


def cloudcommunications_communication_call_show_participant(client,
                                                            call_id,
                                                            participant_id,
                                                            select=None,
                                                            expand=None):
    return client.get_participants(call_id=call_id,
                                   participant_id=participant_id,
                                   select=select,
                                   expand=expand)


def cloudcommunications_communication_call_subscribe_to_tone(client,
                                                             call_id,
                                                             client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.subscribe_to_tone(call_id=call_id,
                                    body=body)


def cloudcommunications_communication_call_transfer(client,
                                                    call_id,
                                                    endpoint_type=None,
                                                    replaces_call_id=None,
                                                    application=None,
                                                    device=None,
                                                    user=None):
    body = {}
    body['transfer_target'] = {}
    body['transfer_target']['endpoint_type'] = endpoint_type
    body['transfer_target']['replaces_call_id'] = replaces_call_id
    body['transfer_target']['identity'] = {}
    body['transfer_target']['identity']['application'] = application
    body['transfer_target']['identity']['device'] = device
    body['transfer_target']['identity']['user'] = user
    return client.transfer(call_id=call_id,
                           body=body)


def cloudcommunications_communication_call_unmute(client,
                                                  call_id,
                                                  client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.unmute(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_update_audio_routing_group(client,
                                                                      call_id,
                                                                      audio_routing_group_id,
                                                                      id_=None,
                                                                      receivers=None,
                                                                      routing_mode=None,
                                                                      sources=None):
    body = {}
    body['id'] = id_
    body['receivers'] = receivers
    body['routing_mode'] = routing_mode
    body['sources'] = sources
    return client.update_audio_routing_groups(call_id=call_id,
                                              audio_routing_group_id=audio_routing_group_id,
                                              body=body)


def cloudcommunications_communication_call_update_operation(client,
                                                            call_id,
                                                            comms_operation_id,
                                                            id_=None,
                                                            client_context=None,
                                                            result_info=None,
                                                            status=None):
    body = {}
    body['id'] = id_
    body['client_context'] = client_context
    body['result_info'] = result_info
    body['status'] = status
    return client.update_operations(call_id=call_id,
                                    comms_operation_id=comms_operation_id,
                                    body=body)


def cloudcommunications_communication_call_update_participant(client,
                                                              call_id,
                                                              participant_id,
                                                              id_=None,
                                                              is_in_lobby=None,
                                                              is_muted=None,
                                                              media_streams=None,
                                                              metadata=None,
                                                              initiated_by=None,
                                                              initiator=None,
                                                              recording_status=None,
                                                              country_code=None,
                                                              endpoint_type=None,
                                                              identity=None,
                                                              language_id=None,
                                                              region=None):
    body = {}
    body['id'] = id_
    body['is_in_lobby'] = is_in_lobby
    body['is_muted'] = is_muted
    body['media_streams'] = media_streams
    body['metadata'] = metadata
    body['recording_info'] = {}
    body['recording_info']['initiated_by'] = initiated_by
    body['recording_info']['initiator'] = initiator
    body['recording_info']['recording_status'] = recording_status
    body['info'] = {}
    body['info']['country_code'] = country_code
    body['info']['endpoint_type'] = endpoint_type
    body['info']['identity'] = identity
    body['info']['language_id'] = language_id
    body['info']['region'] = region
    return client.update_participants(call_id=call_id,
                                      participant_id=participant_id,
                                      body=body)


def cloudcommunications_communication_call_update_recording_status(client,
                                                                   call_id,
                                                                   status=None,
                                                                   client_context=None):
    body = {}
    body['status'] = status
    body['client_context'] = client_context
    return client.update_recording_status(call_id=call_id,
                                          body=body)


def cloudcommunications_communication_call_participant_invite(client,
                                                              call_id,
                                                              participants=None,
                                                              client_context=None):
    body = {}
    body['participants'] = participants
    body['client_context'] = client_context
    return client.invite(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_participant_mute(client,
                                                            call_id,
                                                            participant_id,
                                                            client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.mute(call_id=call_id,
                       participant_id=participant_id,
                       body=body)


def cloudcommunications_communication_call_participant_mute_all(client,
                                                                call_id,
                                                                participants=None,
                                                                client_context=None):
    body = {}
    body['participants'] = participants
    body['client_context'] = client_context
    return client.mute_all(call_id=call_id,
                           body=body)


def cloudcommunications_communication_online_meeting_create_or_get(client,
                                                                   chat_info=None,
                                                                   end_date_time=None,
                                                                   external_id=None,
                                                                   start_date_time=None,
                                                                   subject=None,
                                                                   attendees=None,
                                                                   contributors=None,
                                                                   organizer=None,
                                                                   producers=None):
    body = {}
    body['chat_info'] = chat_info
    body['end_date_time'] = end_date_time
    body['external_id'] = external_id
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.create_or_get(body=body)


def cloudcommunications_user_create_online_meeting(client,
                                                   user_id,
                                                   id_=None,
                                                   access_level=None,
                                                   allowed_presenters=None,
                                                   audio_conferencing=None,
                                                   canceled_date_time=None,
                                                   capabilities=None,
                                                   chat_info=None,
                                                   creation_date_time=None,
                                                   end_date_time=None,
                                                   entry_exit_announcement=None,
                                                   expiration_date_time=None,
                                                   external_id=None,
                                                   is_broadcast=None,
                                                   is_cancelled=None,
                                                   is_entry_exit_announced=None,
                                                   join_information=None,
                                                   join_url=None,
                                                   lobby_bypass_settings=None,
                                                   start_date_time=None,
                                                   subject=None,
                                                   video_teleconference_id=None,
                                                   attendees=None,
                                                   contributors=None,
                                                   organizer=None,
                                                   producers=None):
    body = {}
    body['id'] = id_
    body['access_level'] = access_level
    body['allowed_presenters'] = allowed_presenters
    body['audio_conferencing'] = audio_conferencing
    body['canceled_date_time'] = canceled_date_time
    body['capabilities'] = capabilities
    body['chat_info'] = chat_info
    body['creation_date_time'] = creation_date_time
    body['end_date_time'] = end_date_time
    body['entry_exit_announcement'] = entry_exit_announcement
    body['expiration_date_time'] = expiration_date_time
    body['external_id'] = external_id
    body['is_broadcast'] = is_broadcast
    body['is_cancelled'] = is_cancelled
    body['is_entry_exit_announced'] = is_entry_exit_announced
    body['join_information'] = join_information
    body['join_url'] = join_url
    body['lobby_bypass_settings'] = lobby_bypass_settings
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['video_teleconference_id'] = video_teleconference_id
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.create_online_meetings(user_id=user_id,
                                         body=body)


def cloudcommunications_user_delete_online_meeting(client,
                                                   user_id,
                                                   online_meeting_id,
                                                   if_match=None):
    return client.delete_online_meetings(user_id=user_id,
                                         online_meeting_id=online_meeting_id,
                                         if_match=if_match)


def cloudcommunications_user_delete_presence(client,
                                             user_id,
                                             if_match=None):
    return client.delete_presence(user_id=user_id,
                                  if_match=if_match)


def cloudcommunications_user_list_online_meeting(client,
                                                 user_id,
                                                 orderby=None,
                                                 select=None,
                                                 expand=None):
    return client.list_online_meetings(user_id=user_id,
                                       orderby=orderby,
                                       select=select,
                                       expand=expand)


def cloudcommunications_user_show_online_meeting(client,
                                                 user_id,
                                                 online_meeting_id,
                                                 select=None,
                                                 expand=None):
    return client.get_online_meetings(user_id=user_id,
                                      online_meeting_id=online_meeting_id,
                                      select=select,
                                      expand=expand)


def cloudcommunications_user_show_presence(client,
                                           user_id,
                                           select=None,
                                           expand=None):
    return client.get_presence(user_id=user_id,
                               select=select,
                               expand=expand)


def cloudcommunications_user_update_online_meeting(client,
                                                   user_id,
                                                   online_meeting_id,
                                                   id_=None,
                                                   access_level=None,
                                                   allowed_presenters=None,
                                                   audio_conferencing=None,
                                                   canceled_date_time=None,
                                                   capabilities=None,
                                                   chat_info=None,
                                                   creation_date_time=None,
                                                   end_date_time=None,
                                                   entry_exit_announcement=None,
                                                   expiration_date_time=None,
                                                   external_id=None,
                                                   is_broadcast=None,
                                                   is_cancelled=None,
                                                   is_entry_exit_announced=None,
                                                   join_information=None,
                                                   join_url=None,
                                                   lobby_bypass_settings=None,
                                                   start_date_time=None,
                                                   subject=None,
                                                   video_teleconference_id=None,
                                                   attendees=None,
                                                   contributors=None,
                                                   organizer=None,
                                                   producers=None):
    body = {}
    body['id'] = id_
    body['access_level'] = access_level
    body['allowed_presenters'] = allowed_presenters
    body['audio_conferencing'] = audio_conferencing
    body['canceled_date_time'] = canceled_date_time
    body['capabilities'] = capabilities
    body['chat_info'] = chat_info
    body['creation_date_time'] = creation_date_time
    body['end_date_time'] = end_date_time
    body['entry_exit_announcement'] = entry_exit_announcement
    body['expiration_date_time'] = expiration_date_time
    body['external_id'] = external_id
    body['is_broadcast'] = is_broadcast
    body['is_cancelled'] = is_cancelled
    body['is_entry_exit_announced'] = is_entry_exit_announced
    body['join_information'] = join_information
    body['join_url'] = join_url
    body['lobby_bypass_settings'] = lobby_bypass_settings
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['video_teleconference_id'] = video_teleconference_id
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.update_online_meetings(user_id=user_id,
                                         online_meeting_id=online_meeting_id,
                                         body=body)


def cloudcommunications_user_update_presence(client,
                                             user_id,
                                             id_=None,
                                             activity=None,
                                             availability=None):
    body = {}
    body['id'] = id_
    body['activity'] = activity
    body['availability'] = availability
    return client.update_presence(user_id=user_id,
                                  body=body)

# --------------------------------------------------------------------------
# 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


def cloudcommunications_communication_cloud_communication_show_cloud_communication(client,
                                                                                   select=None,
                                                                                   expand=None):
    return client.get_cloud_communications(select=select,
                                           expand=expand)


def cloudcommunications_communication_cloud_communication_update_cloud_communication(client,
                                                                                     id_=None,
                                                                                     calls=None,
                                                                                     call_records=None,
                                                                                     online_meetings=None,
                                                                                     presences=None):
    body = {}
    body['id'] = id_
    body['calls'] = calls
    body['call_records'] = call_records
    body['online_meetings'] = online_meetings
    body['presences'] = presences
    return client.update_cloud_communications(body=body)


def cloudcommunications_communication_create_call(client,
                                                  id_=None,
                                                  active_modalities=None,
                                                  callback_uri=None,
                                                  call_chain_id=None,
                                                  call_options=None,
                                                  call_routes=None,
                                                  chat_info=None,
                                                  direction=None,
                                                  meeting_capability=None,
                                                  my_participant_id=None,
                                                  requested_modalities=None,
                                                  result_info=None,
                                                  ringing_timeout_in_seconds=None,
                                                  routing_policies=None,
                                                  state=None,
                                                  subject=None,
                                                  targets=None,
                                                  tenant_id=None,
                                                  termination_reason=None,
                                                  tone_info=None,
                                                  transcription=None,
                                                  audio_routing_groups=None,
                                                  operations=None,
                                                  participants=None,
                                                  country_code=None,
                                                  endpoint_type=None,
                                                  identity=None,
                                                  language_id=None,
                                                  region=None,
                                                  allow_conversation_without_host=None,
                                                  audio=None,
                                                  remove_from_default_audio_group=None,
                                                  observed_participant_id=None,
                                                  on_behalf_of=None,
                                                  source_participant_id=None,
                                                  transferor=None,
                                                  microsoft_graph_participant_info_country_code=None,
                                                  microsoft_graph_endpoint_type=None,
                                                  microsoft_graph_identity_set_identity=None,
                                                  microsoft_graph_participant_info_language_id=None,
                                                  microsoft_graph_participant_info_region=None):
    body = {}
    body['id'] = id_
    body['active_modalities'] = active_modalities
    body['callback_uri'] = callback_uri
    body['call_chain_id'] = call_chain_id
    body['call_options'] = call_options
    body['call_routes'] = call_routes
    body['chat_info'] = chat_info
    body['direction'] = direction
    body['meeting_capability'] = meeting_capability
    body['my_participant_id'] = my_participant_id
    body['requested_modalities'] = requested_modalities
    body['result_info'] = result_info
    body['ringing_timeout_in_seconds'] = ringing_timeout_in_seconds
    body['routing_policies'] = routing_policies
    body['state'] = state
    body['subject'] = subject
    body['targets'] = targets
    body['tenant_id'] = tenant_id
    body['termination_reason'] = termination_reason
    body['tone_info'] = tone_info
    body['transcription'] = transcription
    body['audio_routing_groups'] = audio_routing_groups
    body['operations'] = operations
    body['participants'] = participants
    body['source'] = {}
    body['source']['country_code'] = country_code
    body['source']['endpoint_type'] = endpoint_type
    body['source']['identity'] = identity
    body['source']['language_id'] = language_id
    body['source']['region'] = region
    body['meeting_info'] = {}
    body['meeting_info']['allow_conversation_without_host'] = allow_conversation_without_host
    body['media_state'] = {}
    body['media_state']['audio'] = audio
    body['media_config'] = {}
    body['media_config']['remove_from_default_audio_group'] = remove_from_default_audio_group
    body['incoming_context'] = {}
    body['incoming_context']['observed_participant_id'] = observed_participant_id
    body['incoming_context']['on_behalf_of'] = on_behalf_of
    body['incoming_context']['source_participant_id'] = source_participant_id
    body['incoming_context']['transferor'] = transferor
    body['answered_by'] = {}
    body['answered_by']['country_code'] = microsoft_graph_participant_info_country_code
    body['answered_by']['endpoint_type'] = microsoft_graph_endpoint_type
    body['answered_by']['identity'] = microsoft_graph_identity_set_identity
    body['answered_by']['language_id'] = microsoft_graph_participant_info_language_id
    body['answered_by']['region'] = microsoft_graph_participant_info_region
    return client.create_calls(body=body)


def cloudcommunications_communication_create_call_record(client,
                                                         id_=None,
                                                         end_date_time=None,
                                                         join_web_url=None,
                                                         last_modified_date_time=None,
                                                         modalities=None,
                                                         participants=None,
                                                         start_date_time=None,
                                                         type_=None,
                                                         version=None,
                                                         sessions=None,
                                                         application=None,
                                                         device=None,
                                                         user=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['join_web_url'] = join_web_url
    body['last_modified_date_time'] = last_modified_date_time
    body['modalities'] = modalities
    body['participants'] = participants
    body['start_date_time'] = start_date_time
    body['type'] = type_
    body['version'] = version
    body['sessions'] = sessions
    body['organizer'] = {}
    body['organizer']['application'] = application
    body['organizer']['device'] = device
    body['organizer']['user'] = user
    return client.create_call_records(body=body)


def cloudcommunications_communication_create_online_meeting(client,
                                                            id_=None,
                                                            access_level=None,
                                                            allowed_presenters=None,
                                                            audio_conferencing=None,
                                                            canceled_date_time=None,
                                                            capabilities=None,
                                                            chat_info=None,
                                                            creation_date_time=None,
                                                            end_date_time=None,
                                                            entry_exit_announcement=None,
                                                            expiration_date_time=None,
                                                            external_id=None,
                                                            is_broadcast=None,
                                                            is_cancelled=None,
                                                            is_entry_exit_announced=None,
                                                            join_information=None,
                                                            join_url=None,
                                                            lobby_bypass_settings=None,
                                                            start_date_time=None,
                                                            subject=None,
                                                            video_teleconference_id=None,
                                                            attendees=None,
                                                            contributors=None,
                                                            organizer=None,
                                                            producers=None):
    body = {}
    body['id'] = id_
    body['access_level'] = access_level
    body['allowed_presenters'] = allowed_presenters
    body['audio_conferencing'] = audio_conferencing
    body['canceled_date_time'] = canceled_date_time
    body['capabilities'] = capabilities
    body['chat_info'] = chat_info
    body['creation_date_time'] = creation_date_time
    body['end_date_time'] = end_date_time
    body['entry_exit_announcement'] = entry_exit_announcement
    body['expiration_date_time'] = expiration_date_time
    body['external_id'] = external_id
    body['is_broadcast'] = is_broadcast
    body['is_cancelled'] = is_cancelled
    body['is_entry_exit_announced'] = is_entry_exit_announced
    body['join_information'] = join_information
    body['join_url'] = join_url
    body['lobby_bypass_settings'] = lobby_bypass_settings
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['video_teleconference_id'] = video_teleconference_id
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.create_online_meetings(body=body)


def cloudcommunications_communication_create_presence(client,
                                                      id_=None,
                                                      activity=None,
                                                      availability=None):
    body = {}
    body['id'] = id_
    body['activity'] = activity
    body['availability'] = availability
    return client.create_presences(body=body)


def cloudcommunications_communication_delete_call(client,
                                                  call_id,
                                                  if_match=None):
    return client.delete_calls(call_id=call_id,
                               if_match=if_match)


def cloudcommunications_communication_delete_call_record(client,
                                                         call_record_id,
                                                         if_match=None):
    return client.delete_call_records(call_record_id=call_record_id,
                                      if_match=if_match)


def cloudcommunications_communication_delete_online_meeting(client,
                                                            online_meeting_id,
                                                            if_match=None):
    return client.delete_online_meetings(online_meeting_id=online_meeting_id,
                                         if_match=if_match)


def cloudcommunications_communication_delete_presence(client,
                                                      presence_id,
                                                      if_match=None):
    return client.delete_presences(presence_id=presence_id,
                                   if_match=if_match)


def cloudcommunications_communication_get_presence_by_user_id(client,
                                                              ids=None):
    body = {}
    body['ids'] = ids
    return client.get_presences_by_user_id(body=body)


def cloudcommunications_communication_list_call(client,
                                                orderby=None,
                                                select=None,
                                                expand=None):
    return client.list_calls(orderby=orderby,
                             select=select,
                             expand=expand)


def cloudcommunications_communication_list_call_record(client,
                                                       orderby=None,
                                                       select=None,
                                                       expand=None):
    return client.list_call_records(orderby=orderby,
                                    select=select,
                                    expand=expand)


def cloudcommunications_communication_list_online_meeting(client,
                                                          orderby=None,
                                                          select=None,
                                                          expand=None):
    return client.list_online_meetings(orderby=orderby,
                                       select=select,
                                       expand=expand)


def cloudcommunications_communication_list_presence(client,
                                                    orderby=None,
                                                    select=None,
                                                    expand=None):
    return client.list_presences(orderby=orderby,
                                 select=select,
                                 expand=expand)


def cloudcommunications_communication_show_call(client,
                                                call_id,
                                                select=None,
                                                expand=None):
    return client.get_calls(call_id=call_id,
                            select=select,
                            expand=expand)


def cloudcommunications_communication_show_call_record(client,
                                                       call_record_id,
                                                       select=None,
                                                       expand=None):
    return client.get_call_records(call_record_id=call_record_id,
                                   select=select,
                                   expand=expand)


def cloudcommunications_communication_show_online_meeting(client,
                                                          online_meeting_id,
                                                          select=None,
                                                          expand=None):
    return client.get_online_meetings(online_meeting_id=online_meeting_id,
                                      select=select,
                                      expand=expand)


def cloudcommunications_communication_show_presence(client,
                                                    presence_id,
                                                    select=None,
                                                    expand=None):
    return client.get_presences(presence_id=presence_id,
                                select=select,
                                expand=expand)


def cloudcommunications_communication_update_call(client,
                                                  call_id,
                                                  id_=None,
                                                  active_modalities=None,
                                                  callback_uri=None,
                                                  call_chain_id=None,
                                                  call_options=None,
                                                  call_routes=None,
                                                  chat_info=None,
                                                  direction=None,
                                                  meeting_capability=None,
                                                  my_participant_id=None,
                                                  requested_modalities=None,
                                                  result_info=None,
                                                  ringing_timeout_in_seconds=None,
                                                  routing_policies=None,
                                                  state=None,
                                                  subject=None,
                                                  targets=None,
                                                  tenant_id=None,
                                                  termination_reason=None,
                                                  tone_info=None,
                                                  transcription=None,
                                                  audio_routing_groups=None,
                                                  operations=None,
                                                  participants=None,
                                                  country_code=None,
                                                  endpoint_type=None,
                                                  identity=None,
                                                  language_id=None,
                                                  region=None,
                                                  allow_conversation_without_host=None,
                                                  audio=None,
                                                  remove_from_default_audio_group=None,
                                                  observed_participant_id=None,
                                                  on_behalf_of=None,
                                                  source_participant_id=None,
                                                  transferor=None,
                                                  microsoft_graph_participant_info_country_code=None,
                                                  microsoft_graph_endpoint_type=None,
                                                  microsoft_graph_identity_set_identity=None,
                                                  microsoft_graph_participant_info_language_id=None,
                                                  microsoft_graph_participant_info_region=None):
    body = {}
    body['id'] = id_
    body['active_modalities'] = active_modalities
    body['callback_uri'] = callback_uri
    body['call_chain_id'] = call_chain_id
    body['call_options'] = call_options
    body['call_routes'] = call_routes
    body['chat_info'] = chat_info
    body['direction'] = direction
    body['meeting_capability'] = meeting_capability
    body['my_participant_id'] = my_participant_id
    body['requested_modalities'] = requested_modalities
    body['result_info'] = result_info
    body['ringing_timeout_in_seconds'] = ringing_timeout_in_seconds
    body['routing_policies'] = routing_policies
    body['state'] = state
    body['subject'] = subject
    body['targets'] = targets
    body['tenant_id'] = tenant_id
    body['termination_reason'] = termination_reason
    body['tone_info'] = tone_info
    body['transcription'] = transcription
    body['audio_routing_groups'] = audio_routing_groups
    body['operations'] = operations
    body['participants'] = participants
    body['source'] = {}
    body['source']['country_code'] = country_code
    body['source']['endpoint_type'] = endpoint_type
    body['source']['identity'] = identity
    body['source']['language_id'] = language_id
    body['source']['region'] = region
    body['meeting_info'] = {}
    body['meeting_info']['allow_conversation_without_host'] = allow_conversation_without_host
    body['media_state'] = {}
    body['media_state']['audio'] = audio
    body['media_config'] = {}
    body['media_config']['remove_from_default_audio_group'] = remove_from_default_audio_group
    body['incoming_context'] = {}
    body['incoming_context']['observed_participant_id'] = observed_participant_id
    body['incoming_context']['on_behalf_of'] = on_behalf_of
    body['incoming_context']['source_participant_id'] = source_participant_id
    body['incoming_context']['transferor'] = transferor
    body['answered_by'] = {}
    body['answered_by']['country_code'] = microsoft_graph_participant_info_country_code
    body['answered_by']['endpoint_type'] = microsoft_graph_endpoint_type
    body['answered_by']['identity'] = microsoft_graph_identity_set_identity
    body['answered_by']['language_id'] = microsoft_graph_participant_info_language_id
    body['answered_by']['region'] = microsoft_graph_participant_info_region
    return client.update_calls(call_id=call_id,
                               body=body)


def cloudcommunications_communication_update_call_record(client,
                                                         call_record_id,
                                                         id_=None,
                                                         end_date_time=None,
                                                         join_web_url=None,
                                                         last_modified_date_time=None,
                                                         modalities=None,
                                                         participants=None,
                                                         start_date_time=None,
                                                         type_=None,
                                                         version=None,
                                                         sessions=None,
                                                         application=None,
                                                         device=None,
                                                         user=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['join_web_url'] = join_web_url
    body['last_modified_date_time'] = last_modified_date_time
    body['modalities'] = modalities
    body['participants'] = participants
    body['start_date_time'] = start_date_time
    body['type'] = type_
    body['version'] = version
    body['sessions'] = sessions
    body['organizer'] = {}
    body['organizer']['application'] = application
    body['organizer']['device'] = device
    body['organizer']['user'] = user
    return client.update_call_records(call_record_id=call_record_id,
                                      body=body)


def cloudcommunications_communication_update_online_meeting(client,
                                                            online_meeting_id,
                                                            id_=None,
                                                            access_level=None,
                                                            allowed_presenters=None,
                                                            audio_conferencing=None,
                                                            canceled_date_time=None,
                                                            capabilities=None,
                                                            chat_info=None,
                                                            creation_date_time=None,
                                                            end_date_time=None,
                                                            entry_exit_announcement=None,
                                                            expiration_date_time=None,
                                                            external_id=None,
                                                            is_broadcast=None,
                                                            is_cancelled=None,
                                                            is_entry_exit_announced=None,
                                                            join_information=None,
                                                            join_url=None,
                                                            lobby_bypass_settings=None,
                                                            start_date_time=None,
                                                            subject=None,
                                                            video_teleconference_id=None,
                                                            attendees=None,
                                                            contributors=None,
                                                            organizer=None,
                                                            producers=None):
    body = {}
    body['id'] = id_
    body['access_level'] = access_level
    body['allowed_presenters'] = allowed_presenters
    body['audio_conferencing'] = audio_conferencing
    body['canceled_date_time'] = canceled_date_time
    body['capabilities'] = capabilities
    body['chat_info'] = chat_info
    body['creation_date_time'] = creation_date_time
    body['end_date_time'] = end_date_time
    body['entry_exit_announcement'] = entry_exit_announcement
    body['expiration_date_time'] = expiration_date_time
    body['external_id'] = external_id
    body['is_broadcast'] = is_broadcast
    body['is_cancelled'] = is_cancelled
    body['is_entry_exit_announced'] = is_entry_exit_announced
    body['join_information'] = join_information
    body['join_url'] = join_url
    body['lobby_bypass_settings'] = lobby_bypass_settings
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['video_teleconference_id'] = video_teleconference_id
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.update_online_meetings(online_meeting_id=online_meeting_id,
                                         body=body)


def cloudcommunications_communication_update_presence(client,
                                                      presence_id,
                                                      id_=None,
                                                      activity=None,
                                                      availability=None):
    body = {}
    body['id'] = id_
    body['activity'] = activity
    body['availability'] = availability
    return client.update_presences(presence_id=presence_id,
                                   body=body)


def cloudcommunications_communication_call_record_create_session(client,
                                                                 call_record_id,
                                                                 id_=None,
                                                                 end_date_time=None,
                                                                 failure_info=None,
                                                                 modalities=None,
                                                                 start_date_time=None,
                                                                 segments=None,
                                                                 user_agent=None,
                                                                 microsoft_graph_call_records_user_agent=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['failure_info'] = failure_info
    body['modalities'] = modalities
    body['start_date_time'] = start_date_time
    body['segments'] = segments
    body['caller'] = {}
    body['caller']['user_agent'] = user_agent
    body['callee'] = {}
    body['callee']['user_agent'] = microsoft_graph_call_records_user_agent
    return client.create_sessions(call_record_id=call_record_id,
                                  body=body)


def cloudcommunications_communication_call_record_delete_session(client,
                                                                 call_record_id,
                                                                 session_id,
                                                                 if_match=None):
    return client.delete_sessions(call_record_id=call_record_id,
                                  session_id=session_id,
                                  if_match=if_match)


def cloudcommunications_communication_call_record_list_session(client,
                                                               call_record_id,
                                                               orderby=None,
                                                               select=None,
                                                               expand=None):
    return client.list_sessions(call_record_id=call_record_id,
                                orderby=orderby,
                                select=select,
                                expand=expand)


def cloudcommunications_communication_call_record_show_session(client,
                                                               call_record_id,
                                                               session_id,
                                                               select=None,
                                                               expand=None):
    return client.get_sessions(call_record_id=call_record_id,
                               session_id=session_id,
                               select=select,
                               expand=expand)


def cloudcommunications_communication_call_record_update_session(client,
                                                                 call_record_id,
                                                                 session_id,
                                                                 id_=None,
                                                                 end_date_time=None,
                                                                 failure_info=None,
                                                                 modalities=None,
                                                                 start_date_time=None,
                                                                 segments=None,
                                                                 user_agent=None,
                                                                 microsoft_graph_call_records_user_agent=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['failure_info'] = failure_info
    body['modalities'] = modalities
    body['start_date_time'] = start_date_time
    body['segments'] = segments
    body['caller'] = {}
    body['caller']['user_agent'] = user_agent
    body['callee'] = {}
    body['callee']['user_agent'] = microsoft_graph_call_records_user_agent
    return client.update_sessions(call_record_id=call_record_id,
                                  session_id=session_id,
                                  body=body)


def cloudcommunications_communication_call_record_session_create_segment(client,
                                                                         call_record_id,
                                                                         session_id,
                                                                         id_=None,
                                                                         end_date_time=None,
                                                                         failure_info=None,
                                                                         media=None,
                                                                         start_date_time=None,
                                                                         user_agent=None,
                                                                         microsoft_graph_call_records_user_agent=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['failure_info'] = failure_info
    body['media'] = media
    body['start_date_time'] = start_date_time
    body['caller'] = {}
    body['caller']['user_agent'] = user_agent
    body['callee'] = {}
    body['callee']['user_agent'] = microsoft_graph_call_records_user_agent
    return client.create_segments(call_record_id=call_record_id,
                                  session_id=session_id,
                                  body=body)


def cloudcommunications_communication_call_record_session_delete_segment(client,
                                                                         call_record_id,
                                                                         session_id,
                                                                         segment_id,
                                                                         if_match=None):
    return client.delete_segments(call_record_id=call_record_id,
                                  session_id=session_id,
                                  segment_id=segment_id,
                                  if_match=if_match)


def cloudcommunications_communication_call_record_session_list_segment(client,
                                                                       call_record_id,
                                                                       session_id,
                                                                       orderby=None,
                                                                       select=None,
                                                                       expand=None):
    return client.list_segments(call_record_id=call_record_id,
                                session_id=session_id,
                                orderby=orderby,
                                select=select,
                                expand=expand)


def cloudcommunications_communication_call_record_session_show_segment(client,
                                                                       call_record_id,
                                                                       session_id,
                                                                       segment_id,
                                                                       select=None,
                                                                       expand=None):
    return client.get_segments(call_record_id=call_record_id,
                               session_id=session_id,
                               segment_id=segment_id,
                               select=select,
                               expand=expand)


def cloudcommunications_communication_call_record_session_update_segment(client,
                                                                         call_record_id,
                                                                         session_id,
                                                                         segment_id,
                                                                         id_=None,
                                                                         end_date_time=None,
                                                                         failure_info=None,
                                                                         media=None,
                                                                         start_date_time=None,
                                                                         user_agent=None,
                                                                         microsoft_graph_call_records_user_agent=None):
    body = {}
    body['id'] = id_
    body['end_date_time'] = end_date_time
    body['failure_info'] = failure_info
    body['media'] = media
    body['start_date_time'] = start_date_time
    body['caller'] = {}
    body['caller']['user_agent'] = user_agent
    body['callee'] = {}
    body['callee']['user_agent'] = microsoft_graph_call_records_user_agent
    return client.update_segments(call_record_id=call_record_id,
                                  session_id=session_id,
                                  segment_id=segment_id,
                                  body=body)


def cloudcommunications_communication_call_answer(client,
                                                  call_id,
                                                  callback_uri=None,
                                                  accepted_modalities=None,
                                                  remove_from_default_audio_group=None):
    body = {}
    body['callback_uri'] = callback_uri
    body['accepted_modalities'] = accepted_modalities
    body['media_config'] = {}
    body['media_config']['remove_from_default_audio_group'] = remove_from_default_audio_group
    return client.answer(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_cancel_media_processing(client,
                                                                   call_id,
                                                                   client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.cancel_media_processing(call_id=call_id,
                                          body=body)


def cloudcommunications_communication_call_change_screen_sharing_role(client,
                                                                      call_id,
                                                                      role=None):
    body = {}
    body['role'] = role
    return client.change_screen_sharing_role(call_id=call_id,
                                             body=body)


def cloudcommunications_communication_call_create_audio_routing_group(client,
                                                                      call_id,
                                                                      id_=None,
                                                                      receivers=None,
                                                                      routing_mode=None,
                                                                      sources=None):
    body = {}
    body['id'] = id_
    body['receivers'] = receivers
    body['routing_mode'] = routing_mode
    body['sources'] = sources
    return client.create_audio_routing_groups(call_id=call_id,
                                              body=body)


def cloudcommunications_communication_call_create_operation(client,
                                                            call_id,
                                                            id_=None,
                                                            client_context=None,
                                                            result_info=None,
                                                            status=None):
    body = {}
    body['id'] = id_
    body['client_context'] = client_context
    body['result_info'] = result_info
    body['status'] = status
    return client.create_operations(call_id=call_id,
                                    body=body)


def cloudcommunications_communication_call_create_participant(client,
                                                              call_id,
                                                              id_=None,
                                                              is_in_lobby=None,
                                                              is_muted=None,
                                                              media_streams=None,
                                                              metadata=None,
                                                              initiated_by=None,
                                                              initiator=None,
                                                              recording_status=None,
                                                              country_code=None,
                                                              endpoint_type=None,
                                                              identity=None,
                                                              language_id=None,
                                                              region=None):
    body = {}
    body['id'] = id_
    body['is_in_lobby'] = is_in_lobby
    body['is_muted'] = is_muted
    body['media_streams'] = media_streams
    body['metadata'] = metadata
    body['recording_info'] = {}
    body['recording_info']['initiated_by'] = initiated_by
    body['recording_info']['initiator'] = initiator
    body['recording_info']['recording_status'] = recording_status
    body['info'] = {}
    body['info']['country_code'] = country_code
    body['info']['endpoint_type'] = endpoint_type
    body['info']['identity'] = identity
    body['info']['language_id'] = language_id
    body['info']['region'] = region
    return client.create_participants(call_id=call_id,
                                      body=body)


def cloudcommunications_communication_call_delete_audio_routing_group(client,
                                                                      call_id,
                                                                      audio_routing_group_id,
                                                                      if_match=None):
    return client.delete_audio_routing_groups(call_id=call_id,
                                              audio_routing_group_id=audio_routing_group_id,
                                              if_match=if_match)


def cloudcommunications_communication_call_delete_operation(client,
                                                            call_id,
                                                            comms_operation_id,
                                                            if_match=None):
    return client.delete_operations(call_id=call_id,
                                    comms_operation_id=comms_operation_id,
                                    if_match=if_match)


def cloudcommunications_communication_call_delete_participant(client,
                                                              call_id,
                                                              participant_id,
                                                              if_match=None):
    return client.delete_participants(call_id=call_id,
                                      participant_id=participant_id,
                                      if_match=if_match)


def cloudcommunications_communication_call_keep_alive(client,
                                                      call_id):
    return client.keep_alive(call_id=call_id)


def cloudcommunications_communication_call_list_audio_routing_group(client,
                                                                    call_id,
                                                                    orderby=None,
                                                                    select=None,
                                                                    expand=None):
    return client.list_audio_routing_groups(call_id=call_id,
                                            orderby=orderby,
                                            select=select,
                                            expand=expand)


def cloudcommunications_communication_call_list_operation(client,
                                                          call_id,
                                                          orderby=None,
                                                          select=None,
                                                          expand=None):
    return client.list_operations(call_id=call_id,
                                  orderby=orderby,
                                  select=select,
                                  expand=expand)


def cloudcommunications_communication_call_list_participant(client,
                                                            call_id,
                                                            orderby=None,
                                                            select=None,
                                                            expand=None):
    return client.list_participants(call_id=call_id,
                                    orderby=orderby,
                                    select=select,
                                    expand=expand)


def cloudcommunications_communication_call_log_teleconference_device_quality(client,
                                                                             call_chain_id=None,
                                                                             cloud_service_deployment_environment=None,
                                                                             cloud_service_deployment_id=None,
                                                                             cloud_service_instance_name=None,
                                                                             cloud_service_name=None,
                                                                             device_description=None,
                                                                             device_name=None,
                                                                             media_leg_id=None,
                                                                             media_quality_list=None,
                                                                             participant_id=None):
    body = {}
    body['quality'] = {}
    body['quality']['call_chain_id'] = call_chain_id
    body['quality']['cloud_service_deployment_environment'] = cloud_service_deployment_environment
    body['quality']['cloud_service_deployment_id'] = cloud_service_deployment_id
    body['quality']['cloud_service_instance_name'] = cloud_service_instance_name
    body['quality']['cloud_service_name'] = cloud_service_name
    body['quality']['device_description'] = device_description
    body['quality']['device_name'] = device_name
    body['quality']['media_leg_id'] = media_leg_id
    body['quality']['media_quality_list'] = media_quality_list
    body['quality']['participant_id'] = participant_id
    return client.log_teleconference_device_quality(body=body)


def cloudcommunications_communication_call_mute(client,
                                                call_id,
                                                client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.mute(call_id=call_id,
                       body=body)


def cloudcommunications_communication_call_play_prompt(client,
                                                       call_id,
                                                       prompts=None,
                                                       loop=None,
                                                       client_context=None):
    if loop is None:
        loop = False
    body = {}
    body['prompts'] = prompts
    body['loop'] = False if loop is None else loop
    body['client_context'] = client_context
    return client.play_prompt(call_id=call_id,
                              body=body)


def cloudcommunications_communication_call_record(client,
                                                  call_id,
                                                  prompts=None,
                                                  barge_in_allowed=None,
                                                  initial_silence_timeout_in_seconds=None,
                                                  max_silence_timeout_in_seconds=None,
                                                  max_record_duration_in_seconds=None,
                                                  play_beep=None,
                                                  stream_while_recording=None,
                                                  stop_tones=None,
                                                  client_context=None):
    if barge_in_allowed is None:
        barge_in_allowed = False
    if play_beep is None:
        play_beep = False
    if stream_while_recording is None:
        stream_while_recording = False
    body = {}
    body['prompts'] = prompts
    body['barge_in_allowed'] = False if barge_in_allowed is None else barge_in_allowed
    body['initial_silence_timeout_in_seconds'] = initial_silence_timeout_in_seconds
    body['max_silence_timeout_in_seconds'] = max_silence_timeout_in_seconds
    body['max_record_duration_in_seconds'] = max_record_duration_in_seconds
    body['play_beep'] = False if play_beep is None else play_beep
    body['stream_while_recording'] = False if stream_while_recording is None else stream_while_recording
    body['stop_tones'] = stop_tones
    body['client_context'] = client_context
    return client.record(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_record_response(client,
                                                           call_id,
                                                           prompts=None,
                                                           barge_in_allowed=None,
                                                           initial_silence_timeout_in_seconds=None,
                                                           max_silence_timeout_in_seconds=None,
                                                           max_record_duration_in_seconds=None,
                                                           play_beep=None,
                                                           stream_while_recording=None,
                                                           stop_tones=None,
                                                           client_context=None):
    if barge_in_allowed is None:
        barge_in_allowed = False
    if play_beep is None:
        play_beep = False
    if stream_while_recording is None:
        stream_while_recording = False
    body = {}
    body['prompts'] = prompts
    body['barge_in_allowed'] = False if barge_in_allowed is None else barge_in_allowed
    body['initial_silence_timeout_in_seconds'] = initial_silence_timeout_in_seconds
    body['max_silence_timeout_in_seconds'] = max_silence_timeout_in_seconds
    body['max_record_duration_in_seconds'] = max_record_duration_in_seconds
    body['play_beep'] = False if play_beep is None else play_beep
    body['stream_while_recording'] = False if stream_while_recording is None else stream_while_recording
    body['stop_tones'] = stop_tones
    body['client_context'] = client_context
    return client.record_response(call_id=call_id,
                                  body=body)


def cloudcommunications_communication_call_redirect(client,
                                                    call_id,
                                                    targets=None,
                                                    target_disposition=None,
                                                    timeout=None,
                                                    mask_callee=None,
                                                    mask_caller=None,
                                                    callback_uri=None):
    if mask_callee is None:
        mask_callee = False
    if mask_caller is None:
        mask_caller = False
    body = {}
    body['targets'] = targets
    body['target_disposition'] = target_disposition
    body['timeout'] = timeout
    body['mask_callee'] = False if mask_callee is None else mask_callee
    body['mask_caller'] = False if mask_caller is None else mask_caller
    body['callback_uri'] = callback_uri
    return client.redirect(call_id=call_id,
                           body=body)


def cloudcommunications_communication_call_reject(client,
                                                  call_id,
                                                  reason=None,
                                                  callback_uri=None):
    body = {}
    body['reason'] = reason
    body['callback_uri'] = callback_uri
    return client.reject(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_show_audio_routing_group(client,
                                                                    call_id,
                                                                    audio_routing_group_id,
                                                                    select=None,
                                                                    expand=None):
    return client.get_audio_routing_groups(call_id=call_id,
                                           audio_routing_group_id=audio_routing_group_id,
                                           select=select,
                                           expand=expand)


def cloudcommunications_communication_call_show_operation(client,
                                                          call_id,
                                                          comms_operation_id,
                                                          select=None,
                                                          expand=None):
    return client.get_operations(call_id=call_id,
                                 comms_operation_id=comms_operation_id,
                                 select=select,
                                 expand=expand)


def cloudcommunications_communication_call_show_participant(client,
                                                            call_id,
                                                            participant_id,
                                                            select=None,
                                                            expand=None):
    return client.get_participants(call_id=call_id,
                                   participant_id=participant_id,
                                   select=select,
                                   expand=expand)


def cloudcommunications_communication_call_subscribe_to_tone(client,
                                                             call_id,
                                                             client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.subscribe_to_tone(call_id=call_id,
                                    body=body)


def cloudcommunications_communication_call_transfer(client,
                                                    call_id,
                                                    endpoint_type=None,
                                                    replaces_call_id=None,
                                                    application=None,
                                                    device=None,
                                                    user=None):
    body = {}
    body['transfer_target'] = {}
    body['transfer_target']['endpoint_type'] = endpoint_type
    body['transfer_target']['replaces_call_id'] = replaces_call_id
    body['transfer_target']['identity'] = {}
    body['transfer_target']['identity']['application'] = application
    body['transfer_target']['identity']['device'] = device
    body['transfer_target']['identity']['user'] = user
    return client.transfer(call_id=call_id,
                           body=body)


def cloudcommunications_communication_call_unmute(client,
                                                  call_id,
                                                  client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.unmute(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_update_audio_routing_group(client,
                                                                      call_id,
                                                                      audio_routing_group_id,
                                                                      id_=None,
                                                                      receivers=None,
                                                                      routing_mode=None,
                                                                      sources=None):
    body = {}
    body['id'] = id_
    body['receivers'] = receivers
    body['routing_mode'] = routing_mode
    body['sources'] = sources
    return client.update_audio_routing_groups(call_id=call_id,
                                              audio_routing_group_id=audio_routing_group_id,
                                              body=body)


def cloudcommunications_communication_call_update_operation(client,
                                                            call_id,
                                                            comms_operation_id,
                                                            id_=None,
                                                            client_context=None,
                                                            result_info=None,
                                                            status=None):
    body = {}
    body['id'] = id_
    body['client_context'] = client_context
    body['result_info'] = result_info
    body['status'] = status
    return client.update_operations(call_id=call_id,
                                    comms_operation_id=comms_operation_id,
                                    body=body)


def cloudcommunications_communication_call_update_participant(client,
                                                              call_id,
                                                              participant_id,
                                                              id_=None,
                                                              is_in_lobby=None,
                                                              is_muted=None,
                                                              media_streams=None,
                                                              metadata=None,
                                                              initiated_by=None,
                                                              initiator=None,
                                                              recording_status=None,
                                                              country_code=None,
                                                              endpoint_type=None,
                                                              identity=None,
                                                              language_id=None,
                                                              region=None):
    body = {}
    body['id'] = id_
    body['is_in_lobby'] = is_in_lobby
    body['is_muted'] = is_muted
    body['media_streams'] = media_streams
    body['metadata'] = metadata
    body['recording_info'] = {}
    body['recording_info']['initiated_by'] = initiated_by
    body['recording_info']['initiator'] = initiator
    body['recording_info']['recording_status'] = recording_status
    body['info'] = {}
    body['info']['country_code'] = country_code
    body['info']['endpoint_type'] = endpoint_type
    body['info']['identity'] = identity
    body['info']['language_id'] = language_id
    body['info']['region'] = region
    return client.update_participants(call_id=call_id,
                                      participant_id=participant_id,
                                      body=body)


def cloudcommunications_communication_call_update_recording_status(client,
                                                                   call_id,
                                                                   status=None,
                                                                   client_context=None):
    body = {}
    body['status'] = status
    body['client_context'] = client_context
    return client.update_recording_status(call_id=call_id,
                                          body=body)


def cloudcommunications_communication_call_participant_invite(client,
                                                              call_id,
                                                              participants=None,
                                                              client_context=None):
    body = {}
    body['participants'] = participants
    body['client_context'] = client_context
    return client.invite(call_id=call_id,
                         body=body)


def cloudcommunications_communication_call_participant_mute(client,
                                                            call_id,
                                                            participant_id,
                                                            client_context=None):
    body = {}
    body['client_context'] = client_context
    return client.mute(call_id=call_id,
                       participant_id=participant_id,
                       body=body)


def cloudcommunications_communication_call_participant_mute_all(client,
                                                                call_id,
                                                                participants=None,
                                                                client_context=None):
    body = {}
    body['participants'] = participants
    body['client_context'] = client_context
    return client.mute_all(call_id=call_id,
                           body=body)


def cloudcommunications_communication_online_meeting_create_or_get(client,
                                                                   chat_info=None,
                                                                   end_date_time=None,
                                                                   external_id=None,
                                                                   start_date_time=None,
                                                                   subject=None,
                                                                   attendees=None,
                                                                   contributors=None,
                                                                   organizer=None,
                                                                   producers=None):
    body = {}
    body['chat_info'] = chat_info
    body['end_date_time'] = end_date_time
    body['external_id'] = external_id
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.create_or_get(body=body)


def cloudcommunications_user_create_online_meeting(client,
                                                   user_id,
                                                   id_=None,
                                                   access_level=None,
                                                   allowed_presenters=None,
                                                   audio_conferencing=None,
                                                   canceled_date_time=None,
                                                   capabilities=None,
                                                   chat_info=None,
                                                   creation_date_time=None,
                                                   end_date_time=None,
                                                   entry_exit_announcement=None,
                                                   expiration_date_time=None,
                                                   external_id=None,
                                                   is_broadcast=None,
                                                   is_cancelled=None,
                                                   is_entry_exit_announced=None,
                                                   join_information=None,
                                                   join_url=None,
                                                   lobby_bypass_settings=None,
                                                   start_date_time=None,
                                                   subject=None,
                                                   video_teleconference_id=None,
                                                   attendees=None,
                                                   contributors=None,
                                                   organizer=None,
                                                   producers=None):
    body = {}
    body['id'] = id_
    body['access_level'] = access_level
    body['allowed_presenters'] = allowed_presenters
    body['audio_conferencing'] = audio_conferencing
    body['canceled_date_time'] = canceled_date_time
    body['capabilities'] = capabilities
    body['chat_info'] = chat_info
    body['creation_date_time'] = creation_date_time
    body['end_date_time'] = end_date_time
    body['entry_exit_announcement'] = entry_exit_announcement
    body['expiration_date_time'] = expiration_date_time
    body['external_id'] = external_id
    body['is_broadcast'] = is_broadcast
    body['is_cancelled'] = is_cancelled
    body['is_entry_exit_announced'] = is_entry_exit_announced
    body['join_information'] = join_information
    body['join_url'] = join_url
    body['lobby_bypass_settings'] = lobby_bypass_settings
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['video_teleconference_id'] = video_teleconference_id
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.create_online_meetings(user_id=user_id,
                                         body=body)


def cloudcommunications_user_delete_online_meeting(client,
                                                   user_id,
                                                   online_meeting_id,
                                                   if_match=None):
    return client.delete_online_meetings(user_id=user_id,
                                         online_meeting_id=online_meeting_id,
                                         if_match=if_match)


def cloudcommunications_user_delete_presence(client,
                                             user_id,
                                             if_match=None):
    return client.delete_presence(user_id=user_id,
                                  if_match=if_match)


def cloudcommunications_user_list_online_meeting(client,
                                                 user_id,
                                                 orderby=None,
                                                 select=None,
                                                 expand=None):
    return client.list_online_meetings(user_id=user_id,
                                       orderby=orderby,
                                       select=select,
                                       expand=expand)


def cloudcommunications_user_show_online_meeting(client,
                                                 user_id,
                                                 online_meeting_id,
                                                 select=None,
                                                 expand=None):
    return client.get_online_meetings(user_id=user_id,
                                      online_meeting_id=online_meeting_id,
                                      select=select,
                                      expand=expand)


def cloudcommunications_user_show_presence(client,
                                           user_id,
                                           select=None,
                                           expand=None):
    return client.get_presence(user_id=user_id,
                               select=select,
                               expand=expand)


def cloudcommunications_user_update_online_meeting(client,
                                                   user_id,
                                                   online_meeting_id,
                                                   id_=None,
                                                   access_level=None,
                                                   allowed_presenters=None,
                                                   audio_conferencing=None,
                                                   canceled_date_time=None,
                                                   capabilities=None,
                                                   chat_info=None,
                                                   creation_date_time=None,
                                                   end_date_time=None,
                                                   entry_exit_announcement=None,
                                                   expiration_date_time=None,
                                                   external_id=None,
                                                   is_broadcast=None,
                                                   is_cancelled=None,
                                                   is_entry_exit_announced=None,
                                                   join_information=None,
                                                   join_url=None,
                                                   lobby_bypass_settings=None,
                                                   start_date_time=None,
                                                   subject=None,
                                                   video_teleconference_id=None,
                                                   attendees=None,
                                                   contributors=None,
                                                   organizer=None,
                                                   producers=None):
    body = {}
    body['id'] = id_
    body['access_level'] = access_level
    body['allowed_presenters'] = allowed_presenters
    body['audio_conferencing'] = audio_conferencing
    body['canceled_date_time'] = canceled_date_time
    body['capabilities'] = capabilities
    body['chat_info'] = chat_info
    body['creation_date_time'] = creation_date_time
    body['end_date_time'] = end_date_time
    body['entry_exit_announcement'] = entry_exit_announcement
    body['expiration_date_time'] = expiration_date_time
    body['external_id'] = external_id
    body['is_broadcast'] = is_broadcast
    body['is_cancelled'] = is_cancelled
    body['is_entry_exit_announced'] = is_entry_exit_announced
    body['join_information'] = join_information
    body['join_url'] = join_url
    body['lobby_bypass_settings'] = lobby_bypass_settings
    body['start_date_time'] = start_date_time
    body['subject'] = subject
    body['video_teleconference_id'] = video_teleconference_id
    body['participants'] = {}
    body['participants']['attendees'] = attendees
    body['participants']['contributors'] = contributors
    body['participants']['organizer'] = organizer
    body['participants']['producers'] = producers
    return client.update_online_meetings(user_id=user_id,
                                         online_meeting_id=online_meeting_id,
                                         body=body)


def cloudcommunications_user_update_presence(client,
                                             user_id,
                                             id_=None,
                                             activity=None,
                                             availability=None):
    body = {}
    body['id'] = id_
    body['activity'] = activity
    body['availability'] = availability
    return client.update_presence(user_id=user_id,
                                  body=body)
# -------------------------------------------------------------------------- # 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