=begin
PureCloud Platform API

With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more.

OpenAPI spec version: v2
Contact: DeveloperEvangelists@genesys.com
Generated by: https://github.com/swagger-api/swagger-codegen.git

License: ININ
http://www.inin.com

Terms of Service: https://developer.mypurecloud.com/tos

=end

# Common files
require 'purecloudplatformclientv2/api_client'
require 'purecloudplatformclientv2/api_error'
require 'purecloudplatformclientv2/version'
require 'purecloudplatformclientv2/configuration'

# Models
require 'purecloudplatformclientv2/models/adfs'
require 'purecloudplatformclientv2/models/actions'
require 'purecloudplatformclientv2/models/activity_code'
require 'purecloudplatformclientv2/models/activity_code_container'
require 'purecloudplatformclientv2/models/acw_settings'
require 'purecloudplatformclientv2/models/address'
require 'purecloudplatformclientv2/models/addressable_entity_user'
require 'purecloudplatformclientv2/models/addressable_license_definition'
require 'purecloudplatformclientv2/models/adjacents'
require 'purecloudplatformclientv2/models/agent'
require 'purecloudplatformclientv2/models/agent_activity'
require 'purecloudplatformclientv2/models/agent_activity_entity_listing'
require 'purecloudplatformclientv2/models/agent_evaluator_activity'
require 'purecloudplatformclientv2/models/aggregate_data_container'
require 'purecloudplatformclientv2/models/aggregate_metric_data'
require 'purecloudplatformclientv2/models/aggregate_query_response'
require 'purecloudplatformclientv2/models/aggregate_view_data'
require 'purecloudplatformclientv2/models/aggregation_query'
require 'purecloudplatformclientv2/models/aggregation_range'
require 'purecloudplatformclientv2/models/aggregation_result'
require 'purecloudplatformclientv2/models/aggregation_result_entry'
require 'purecloudplatformclientv2/models/analytics_conversation'
require 'purecloudplatformclientv2/models/analytics_conversation_query_response'
require 'purecloudplatformclientv2/models/analytics_conversation_segment'
require 'purecloudplatformclientv2/models/analytics_evaluation'
require 'purecloudplatformclientv2/models/analytics_participant'
require 'purecloudplatformclientv2/models/analytics_property'
require 'purecloudplatformclientv2/models/analytics_query_aggregation'
require 'purecloudplatformclientv2/models/analytics_query_clause'
require 'purecloudplatformclientv2/models/analytics_query_filter'
require 'purecloudplatformclientv2/models/analytics_query_predicate'
require 'purecloudplatformclientv2/models/analytics_routing_status_record'
require 'purecloudplatformclientv2/models/analytics_session'
require 'purecloudplatformclientv2/models/analytics_user_detail'
require 'purecloudplatformclientv2/models/analytics_user_details_query_response'
require 'purecloudplatformclientv2/models/analytics_user_presence_record'
require 'purecloudplatformclientv2/models/analytics_view'
require 'purecloudplatformclientv2/models/annotation'
require 'purecloudplatformclientv2/models/answer_option'
require 'purecloudplatformclientv2/models/archive_retention'
require 'purecloudplatformclientv2/models/attachment'
require 'purecloudplatformclientv2/models/attempt_limits'
require 'purecloudplatformclientv2/models/attempt_limits_entity_listing'
require 'purecloudplatformclientv2/models/attempt_limits_notification'
require 'purecloudplatformclientv2/models/attempt_limits_notification_recall_entries'
require 'purecloudplatformclientv2/models/attempt_limits_notification_recall_entry'
require 'purecloudplatformclientv2/models/attribute'
require 'purecloudplatformclientv2/models/attribute_entity_listing'
require 'purecloudplatformclientv2/models/attribute_filter_item'
require 'purecloudplatformclientv2/models/attribute_query_request'
require 'purecloudplatformclientv2/models/audit_change'
require 'purecloudplatformclientv2/models/audit_entity'
require 'purecloudplatformclientv2/models/audit_entity_reference'
require 'purecloudplatformclientv2/models/audit_facet'
require 'purecloudplatformclientv2/models/audit_filter'
require 'purecloudplatformclientv2/models/audit_message'
require 'purecloudplatformclientv2/models/audit_search_result'
require 'purecloudplatformclientv2/models/audit_user'
require 'purecloudplatformclientv2/models/available_language_list'
require 'purecloudplatformclientv2/models/available_topic'
require 'purecloudplatformclientv2/models/available_topic_entity_listing'
require 'purecloudplatformclientv2/models/available_translations'
require 'purecloudplatformclientv2/models/bullseye'
require 'purecloudplatformclientv2/models/calibration'
require 'purecloudplatformclientv2/models/calibration_assignment'
require 'purecloudplatformclientv2/models/calibration_create'
require 'purecloudplatformclientv2/models/calibration_entity_listing'
require 'purecloudplatformclientv2/models/call'
require 'purecloudplatformclientv2/models/call_basic'
require 'purecloudplatformclientv2/models/call_command'
require 'purecloudplatformclientv2/models/call_conversation'
require 'purecloudplatformclientv2/models/call_conversation_entity_listing'
require 'purecloudplatformclientv2/models/call_conversation_notification'
require 'purecloudplatformclientv2/models/call_conversation_notification_call_media_participant'
require 'purecloudplatformclientv2/models/call_conversation_notification_detail'
require 'purecloudplatformclientv2/models/call_conversation_notification_error_body'
require 'purecloudplatformclientv2/models/call_conversation_notification_error_info'
require 'purecloudplatformclientv2/models/call_conversation_notification_fax_status'
require 'purecloudplatformclientv2/models/call_conversation_notification_participants'
require 'purecloudplatformclientv2/models/call_conversation_notification_uri_reference'
require 'purecloudplatformclientv2/models/call_conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/call_forwarding'
require 'purecloudplatformclientv2/models/call_media_participant'
require 'purecloudplatformclientv2/models/call_media_policy'
require 'purecloudplatformclientv2/models/call_media_policy_conditions'
require 'purecloudplatformclientv2/models/call_record'
require 'purecloudplatformclientv2/models/callable_contacts_diagnostic'
require 'purecloudplatformclientv2/models/callable_time'
require 'purecloudplatformclientv2/models/callable_time_set'
require 'purecloudplatformclientv2/models/callable_time_set_entity_listing'
require 'purecloudplatformclientv2/models/callable_time_set_notification'
require 'purecloudplatformclientv2/models/callable_time_set_notification_callable_time'
require 'purecloudplatformclientv2/models/callable_time_set_notification_callable_times'
require 'purecloudplatformclientv2/models/callable_time_set_notification_time_slot'
require 'purecloudplatformclientv2/models/callable_time_set_notification_time_slots'
require 'purecloudplatformclientv2/models/callback'
require 'purecloudplatformclientv2/models/callback_basic'
require 'purecloudplatformclientv2/models/callback_conversation'
require 'purecloudplatformclientv2/models/callback_conversation_entity_listing'
require 'purecloudplatformclientv2/models/callback_conversation_notification'
require 'purecloudplatformclientv2/models/callback_conversation_notification_callback_media_participant'
require 'purecloudplatformclientv2/models/callback_conversation_notification_detail'
require 'purecloudplatformclientv2/models/callback_conversation_notification_dialer_preview'
require 'purecloudplatformclientv2/models/callback_conversation_notification_error_body'
require 'purecloudplatformclientv2/models/callback_conversation_notification_error_info'
require 'purecloudplatformclientv2/models/callback_conversation_notification_error_info_details'
require 'purecloudplatformclientv2/models/callback_conversation_notification_participants'
require 'purecloudplatformclientv2/models/callback_conversation_notification_phone_number_column'
require 'purecloudplatformclientv2/models/callback_conversation_notification_uri_reference'
require 'purecloudplatformclientv2/models/callback_conversation_notification_voicemail'
require 'purecloudplatformclientv2/models/callback_conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/callback_identifier'
require 'purecloudplatformclientv2/models/callback_media_participant'
require 'purecloudplatformclientv2/models/campaign'
require 'purecloudplatformclientv2/models/campaign_diagnostics'
require 'purecloudplatformclientv2/models/campaign_entity_listing'
require 'purecloudplatformclientv2/models/campaign_interaction'
require 'purecloudplatformclientv2/models/campaign_interactions'
require 'purecloudplatformclientv2/models/campaign_notification'
require 'purecloudplatformclientv2/models/campaign_notification_contact_sort'
require 'purecloudplatformclientv2/models/campaign_notification_errors'
require 'purecloudplatformclientv2/models/campaign_notification_phone_column'
require 'purecloudplatformclientv2/models/campaign_notification_phone_columns'
require 'purecloudplatformclientv2/models/campaign_notification_rest_error_detail'
require 'purecloudplatformclientv2/models/campaign_notification_uri_reference'
require 'purecloudplatformclientv2/models/campaign_progress'
require 'purecloudplatformclientv2/models/campaign_progress_notification'
require 'purecloudplatformclientv2/models/campaign_progress_notification_uri_reference'
require 'purecloudplatformclientv2/models/campaign_rule'
require 'purecloudplatformclientv2/models/campaign_rule_action'
require 'purecloudplatformclientv2/models/campaign_rule_action_entities'
require 'purecloudplatformclientv2/models/campaign_rule_condition'
require 'purecloudplatformclientv2/models/campaign_rule_entities'
require 'purecloudplatformclientv2/models/campaign_rule_entity_listing'
require 'purecloudplatformclientv2/models/campaign_rule_notification'
require 'purecloudplatformclientv2/models/campaign_rule_notification_campaign_rule_action'
require 'purecloudplatformclientv2/models/campaign_rule_notification_campaign_rule_action_entities'
require 'purecloudplatformclientv2/models/campaign_rule_notification_campaign_rule_actions'
require 'purecloudplatformclientv2/models/campaign_rule_notification_campaign_rule_condition'
require 'purecloudplatformclientv2/models/campaign_rule_notification_campaign_rule_conditions'
require 'purecloudplatformclientv2/models/campaign_rule_notification_campaign_rule_entities'
require 'purecloudplatformclientv2/models/campaign_rule_notification_uri_reference'
require 'purecloudplatformclientv2/models/campaign_rule_parameters'
require 'purecloudplatformclientv2/models/campaign_schedule'
require 'purecloudplatformclientv2/models/campaign_schedule_notification'
require 'purecloudplatformclientv2/models/campaign_schedule_notification_intervals'
require 'purecloudplatformclientv2/models/campaign_schedule_notification_schedule_interval'
require 'purecloudplatformclientv2/models/campaign_schedule_notification_uri_reference'
require 'purecloudplatformclientv2/models/campaign_sequence'
require 'purecloudplatformclientv2/models/campaign_sequence_entity_listing'
require 'purecloudplatformclientv2/models/campaign_sequence_notification'
require 'purecloudplatformclientv2/models/campaign_sequence_notification_uri_reference'
require 'purecloudplatformclientv2/models/campaign_stats'
require 'purecloudplatformclientv2/models/campaign_time_slot'
require 'purecloudplatformclientv2/models/certificate'
require 'purecloudplatformclientv2/models/certificate_authority_entity_listing'
require 'purecloudplatformclientv2/models/certificate_details'
require 'purecloudplatformclientv2/models/change'
require 'purecloudplatformclientv2/models/channel'
require 'purecloudplatformclientv2/models/channel_entity_listing'
require 'purecloudplatformclientv2/models/channel_topic'
require 'purecloudplatformclientv2/models/channel_topic_entity_listing'
require 'purecloudplatformclientv2/models/chat'
require 'purecloudplatformclientv2/models/chat_conversation'
require 'purecloudplatformclientv2/models/chat_conversation_entity_listing'
require 'purecloudplatformclientv2/models/chat_conversation_notification'
require 'purecloudplatformclientv2/models/chat_conversation_notification_chat_media_participant'
require 'purecloudplatformclientv2/models/chat_conversation_notification_detail'
require 'purecloudplatformclientv2/models/chat_conversation_notification_error_body'
require 'purecloudplatformclientv2/models/chat_conversation_notification_error_info'
require 'purecloudplatformclientv2/models/chat_conversation_notification_participants'
require 'purecloudplatformclientv2/models/chat_conversation_notification_uri_reference'
require 'purecloudplatformclientv2/models/chat_conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/chat_media_participant'
require 'purecloudplatformclientv2/models/chat_media_policy'
require 'purecloudplatformclientv2/models/chat_media_policy_conditions'
require 'purecloudplatformclientv2/models/chat_message'
require 'purecloudplatformclientv2/models/chat_message_user'
require 'purecloudplatformclientv2/models/cobrowse_conversation'
require 'purecloudplatformclientv2/models/cobrowse_conversation_entity_listing'
require 'purecloudplatformclientv2/models/cobrowse_conversation_notification'
require 'purecloudplatformclientv2/models/cobrowse_conversation_notification_cobrowse_media_participant'
require 'purecloudplatformclientv2/models/cobrowse_conversation_notification_detail'
require 'purecloudplatformclientv2/models/cobrowse_conversation_notification_error_body'
require 'purecloudplatformclientv2/models/cobrowse_conversation_notification_error_info'
require 'purecloudplatformclientv2/models/cobrowse_conversation_notification_participants'
require 'purecloudplatformclientv2/models/cobrowse_conversation_notification_uri_reference'
require 'purecloudplatformclientv2/models/cobrowse_conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/cobrowse_media_participant'
require 'purecloudplatformclientv2/models/cobrowsesession'
require 'purecloudplatformclientv2/models/command_status'
require 'purecloudplatformclientv2/models/command_status_entity_listing'
require 'purecloudplatformclientv2/models/condition'
require 'purecloudplatformclientv2/models/connect_rate'
require 'purecloudplatformclientv2/models/consult_transfer'
require 'purecloudplatformclientv2/models/consult_transfer_response'
require 'purecloudplatformclientv2/models/consult_transfer_update'
require 'purecloudplatformclientv2/models/consumed_resources_entity_listing'
require 'purecloudplatformclientv2/models/consuming_resources_entity_listing'
require 'purecloudplatformclientv2/models/contact'
require 'purecloudplatformclientv2/models/contact_address'
require 'purecloudplatformclientv2/models/contact_callback_request'
require 'purecloudplatformclientv2/models/contact_list'
require 'purecloudplatformclientv2/models/contact_list_entity_listing'
require 'purecloudplatformclientv2/models/contact_list_filter_notification'
require 'purecloudplatformclientv2/models/contact_list_filter_notification_clauses'
require 'purecloudplatformclientv2/models/contact_list_filter_notification_filter_clause'
require 'purecloudplatformclientv2/models/contact_list_filter_notification_filter_predicate'
require 'purecloudplatformclientv2/models/contact_list_filter_notification_predicates'
require 'purecloudplatformclientv2/models/contact_list_filter_notification_range'
require 'purecloudplatformclientv2/models/contact_list_filter_notification_uri_reference'
require 'purecloudplatformclientv2/models/contact_list_notification'
require 'purecloudplatformclientv2/models/contact_list_notification_contact_phone_number_column'
require 'purecloudplatformclientv2/models/contact_list_notification_import_status'
require 'purecloudplatformclientv2/models/contact_list_notification_phone_columns'
require 'purecloudplatformclientv2/models/contact_list_notification_uri_reference'
require 'purecloudplatformclientv2/models/contact_listing'
require 'purecloudplatformclientv2/models/contact_phone_number_column'
require 'purecloudplatformclientv2/models/contact_sort'
require 'purecloudplatformclientv2/models/content_attribute_filter_item'
require 'purecloudplatformclientv2/models/content_facet_filter_item'
require 'purecloudplatformclientv2/models/content_filter_item'
require 'purecloudplatformclientv2/models/content_query_request'
require 'purecloudplatformclientv2/models/content_sort_item'
require 'purecloudplatformclientv2/models/conversation'
require 'purecloudplatformclientv2/models/conversation_association'
require 'purecloudplatformclientv2/models/conversation_basic'
require 'purecloudplatformclientv2/models/conversation_chat'
require 'purecloudplatformclientv2/models/conversation_entity_listing'
require 'purecloudplatformclientv2/models/conversation_notification'
require 'purecloudplatformclientv2/models/conversation_notification_address'
require 'purecloudplatformclientv2/models/conversation_notification_call'
require 'purecloudplatformclientv2/models/conversation_notification_callback'
require 'purecloudplatformclientv2/models/conversation_notification_callbacks'
require 'purecloudplatformclientv2/models/conversation_notification_calls'
require 'purecloudplatformclientv2/models/conversation_notification_chat'
require 'purecloudplatformclientv2/models/conversation_notification_chats'
require 'purecloudplatformclientv2/models/conversation_notification_cobrowse'
require 'purecloudplatformclientv2/models/conversation_notification_cobrowsesessions'
require 'purecloudplatformclientv2/models/conversation_notification_dialer_preview'
require 'purecloudplatformclientv2/models/conversation_notification_disconnect_reason'
require 'purecloudplatformclientv2/models/conversation_notification_disconnect_reasons'
require 'purecloudplatformclientv2/models/conversation_notification_email'
require 'purecloudplatformclientv2/models/conversation_notification_emails'
require 'purecloudplatformclientv2/models/conversation_notification_error_details'
require 'purecloudplatformclientv2/models/conversation_notification_error_info'
require 'purecloudplatformclientv2/models/conversation_notification_fax_status'
require 'purecloudplatformclientv2/models/conversation_notification_participant'
require 'purecloudplatformclientv2/models/conversation_notification_participants'
require 'purecloudplatformclientv2/models/conversation_notification_phone_number_column'
require 'purecloudplatformclientv2/models/conversation_notification_screenshare'
require 'purecloudplatformclientv2/models/conversation_notification_screenshares'
require 'purecloudplatformclientv2/models/conversation_notification_self'
require 'purecloudplatformclientv2/models/conversation_notification_social_expression'
require 'purecloudplatformclientv2/models/conversation_notification_social_expressions'
require 'purecloudplatformclientv2/models/conversation_notification_video'
require 'purecloudplatformclientv2/models/conversation_notification_videos'
require 'purecloudplatformclientv2/models/conversation_notification_voicemail'
require 'purecloudplatformclientv2/models/conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/conversation_query'
require 'purecloudplatformclientv2/models/copy_voicemail_message'
require 'purecloudplatformclientv2/models/cover_sheet'
require 'purecloudplatformclientv2/models/create_call_request'
require 'purecloudplatformclientv2/models/create_call_response'
require 'purecloudplatformclientv2/models/create_callback_command'
require 'purecloudplatformclientv2/models/create_callback_response'
require 'purecloudplatformclientv2/models/create_email_request'
require 'purecloudplatformclientv2/models/create_queue_request'
require 'purecloudplatformclientv2/models/create_share_request'
require 'purecloudplatformclientv2/models/create_share_request_member'
require 'purecloudplatformclientv2/models/create_share_response'
require 'purecloudplatformclientv2/models/create_user'
require 'purecloudplatformclientv2/models/create_web_chat_request'
require 'purecloudplatformclientv2/models/current_user_schedule_request_body'
require 'purecloudplatformclientv2/models/customer_interaction_center'
require 'purecloudplatformclientv2/models/did'
require 'purecloudplatformclientv2/models/did_entity_listing'
require 'purecloudplatformclientv2/models/did_pool'
require 'purecloudplatformclientv2/models/did_pool_entity_listing'
require 'purecloudplatformclientv2/models/default_greeting_list'
require 'purecloudplatformclientv2/models/delete_retention'
require 'purecloudplatformclientv2/models/dependency'
require 'purecloudplatformclientv2/models/dependency_object'
require 'purecloudplatformclientv2/models/dependency_object_entity_listing'
require 'purecloudplatformclientv2/models/dependency_status'
require 'purecloudplatformclientv2/models/dependency_tracking_build_notification_notification'
require 'purecloudplatformclientv2/models/dependency_tracking_build_notification_notification_user'
require 'purecloudplatformclientv2/models/dependency_type'
require 'purecloudplatformclientv2/models/dependency_type_entity_listing'
require 'purecloudplatformclientv2/models/destination'
require 'purecloudplatformclientv2/models/detail'
require 'purecloudplatformclientv2/models/dialer_action'
require 'purecloudplatformclientv2/models/dialer_audit_request'
require 'purecloudplatformclientv2/models/dialer_contact'
require 'purecloudplatformclientv2/models/dialer_event_entity_listing'
require 'purecloudplatformclientv2/models/dialer_preview'
require 'purecloudplatformclientv2/models/dialer_rule'
require 'purecloudplatformclientv2/models/digit_length'
require 'purecloudplatformclientv2/models/disconnect_reason'
require 'purecloudplatformclientv2/models/dnc_list'
require 'purecloudplatformclientv2/models/dnc_list_create'
require 'purecloudplatformclientv2/models/dnc_list_entity_listing'
require 'purecloudplatformclientv2/models/dnc_list_notification'
require 'purecloudplatformclientv2/models/dnc_list_notification_import_status'
require 'purecloudplatformclientv2/models/document'
require 'purecloudplatformclientv2/models/document_attribute'
require 'purecloudplatformclientv2/models/document_audit'
require 'purecloudplatformclientv2/models/document_audit_entity_listing'
require 'purecloudplatformclientv2/models/document_data_v2_notification'
require 'purecloudplatformclientv2/models/document_data_v2_notification_lock_data'
require 'purecloudplatformclientv2/models/document_data_v2_notification_lock_info'
require 'purecloudplatformclientv2/models/document_data_v2_notification_user_data'
require 'purecloudplatformclientv2/models/document_data_v2_notification_workspace'
require 'purecloudplatformclientv2/models/document_data_v2_notification_workspace_data'
require 'purecloudplatformclientv2/models/document_entity_listing'
require 'purecloudplatformclientv2/models/document_thumbnail'
require 'purecloudplatformclientv2/models/document_update'
require 'purecloudplatformclientv2/models/document_upload'
require 'purecloudplatformclientv2/models/documentation_result'
require 'purecloudplatformclientv2/models/documentation_search_criteria'
require 'purecloudplatformclientv2/models/documentation_search_request'
require 'purecloudplatformclientv2/models/documentation_search_response'
require 'purecloudplatformclientv2/models/domain_capabilities'
require 'purecloudplatformclientv2/models/domain_certificate_authority'
require 'purecloudplatformclientv2/models/domain_edge_software_update_dto'
require 'purecloudplatformclientv2/models/domain_edge_software_version_dto'
require 'purecloudplatformclientv2/models/domain_edge_software_version_dto_entity_listing'
require 'purecloudplatformclientv2/models/domain_entity'
require 'purecloudplatformclientv2/models/domain_entity_listing'
require 'purecloudplatformclientv2/models/domain_entity_listing_evaluation_form'
require 'purecloudplatformclientv2/models/domain_entity_listing_query_result'
require 'purecloudplatformclientv2/models/domain_logical_interface'
require 'purecloudplatformclientv2/models/domain_network_address'
require 'purecloudplatformclientv2/models/domain_network_command_response'
require 'purecloudplatformclientv2/models/domain_network_route'
require 'purecloudplatformclientv2/models/domain_org_role_difference'
require 'purecloudplatformclientv2/models/domain_organization_product'
require 'purecloudplatformclientv2/models/domain_organization_role'
require 'purecloudplatformclientv2/models/domain_organization_role_create'
require 'purecloudplatformclientv2/models/domain_organization_role_update'
require 'purecloudplatformclientv2/models/domain_permission'
require 'purecloudplatformclientv2/models/domain_permission_collection'
require 'purecloudplatformclientv2/models/domain_permission_policy'
require 'purecloudplatformclientv2/models/domain_physical_capabilities'
require 'purecloudplatformclientv2/models/domain_physical_interface'
require 'purecloudplatformclientv2/models/domain_resource_condition_node'
require 'purecloudplatformclientv2/models/domain_resource_condition_value'
require 'purecloudplatformclientv2/models/domain_role'
require 'purecloudplatformclientv2/models/domain_schema_reference'
require 'purecloudplatformclientv2/models/download_response'
require 'purecloudplatformclientv2/models/duration_condition'
require 'purecloudplatformclientv2/models/edge'
require 'purecloudplatformclientv2/models/edge_auto_update_config'
require 'purecloudplatformclientv2/models/edge_entity_listing'
require 'purecloudplatformclientv2/models/edge_group'
require 'purecloudplatformclientv2/models/edge_group_entity_listing'
require 'purecloudplatformclientv2/models/edge_interface'
require 'purecloudplatformclientv2/models/edge_line'
require 'purecloudplatformclientv2/models/edge_line_entity_listing'
require 'purecloudplatformclientv2/models/edge_logs_job'
require 'purecloudplatformclientv2/models/edge_logs_job_file'
require 'purecloudplatformclientv2/models/edge_logs_job_request'
require 'purecloudplatformclientv2/models/edge_logs_job_response'
require 'purecloudplatformclientv2/models/edge_logs_job_upload_request'
require 'purecloudplatformclientv2/models/edge_reboot_parameters'
require 'purecloudplatformclientv2/models/edge_service_state_request'
require 'purecloudplatformclientv2/models/edge_trunk_base'
require 'purecloudplatformclientv2/models/edge_version_information'
require 'purecloudplatformclientv2/models/edge_version_report'
require 'purecloudplatformclientv2/models/email'
require 'purecloudplatformclientv2/models/email_address'
require 'purecloudplatformclientv2/models/email_attachment'
require 'purecloudplatformclientv2/models/email_conversation'
require 'purecloudplatformclientv2/models/email_conversation_entity_listing'
require 'purecloudplatformclientv2/models/email_conversation_notification'
require 'purecloudplatformclientv2/models/email_conversation_notification_detail'
require 'purecloudplatformclientv2/models/email_conversation_notification_email_media_participant'
require 'purecloudplatformclientv2/models/email_conversation_notification_error_body'
require 'purecloudplatformclientv2/models/email_conversation_notification_error_info'
require 'purecloudplatformclientv2/models/email_conversation_notification_participants'
require 'purecloudplatformclientv2/models/email_conversation_notification_uri_reference'
require 'purecloudplatformclientv2/models/email_conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/email_media_participant'
require 'purecloudplatformclientv2/models/email_media_policy'
require 'purecloudplatformclientv2/models/email_media_policy_conditions'
require 'purecloudplatformclientv2/models/email_message'
require 'purecloudplatformclientv2/models/email_message_listing'
require 'purecloudplatformclientv2/models/email_setup'
require 'purecloudplatformclientv2/models/empty'
require 'purecloudplatformclientv2/models/encryption_key'
require 'purecloudplatformclientv2/models/encryption_key_entity_listing'
require 'purecloudplatformclientv2/models/endpoint'
require 'purecloudplatformclientv2/models/endpoint_entity_listing'
require 'purecloudplatformclientv2/models/entity'
require 'purecloudplatformclientv2/models/entry'
require 'purecloudplatformclientv2/models/error_body'
require 'purecloudplatformclientv2/models/error_details'
require 'purecloudplatformclientv2/models/estimated_wait_time_predictions'
require 'purecloudplatformclientv2/models/evaluation'
require 'purecloudplatformclientv2/models/evaluation_assignment'
require 'purecloudplatformclientv2/models/evaluation_entity_listing'
require 'purecloudplatformclientv2/models/evaluation_form'
require 'purecloudplatformclientv2/models/evaluation_form_and_scoring_set'
require 'purecloudplatformclientv2/models/evaluation_form_entity_listing'
require 'purecloudplatformclientv2/models/evaluation_scoring_set'
require 'purecloudplatformclientv2/models/evaluator_activity'
require 'purecloudplatformclientv2/models/evaluator_activity_entity_listing'
require 'purecloudplatformclientv2/models/event_log'
require 'purecloudplatformclientv2/models/event_message'
require 'purecloudplatformclientv2/models/expansion_criterium'
require 'purecloudplatformclientv2/models/export_uri'
require 'purecloudplatformclientv2/models/export_uri_notification'
require 'purecloudplatformclientv2/models/extension'
require 'purecloudplatformclientv2/models/extension_entity_listing'
require 'purecloudplatformclientv2/models/extension_pool'
require 'purecloudplatformclientv2/models/extension_pool_entity_listing'
require 'purecloudplatformclientv2/models/external_contact'
require 'purecloudplatformclientv2/models/external_data_source'
require 'purecloudplatformclientv2/models/external_organization'
require 'purecloudplatformclientv2/models/external_organization_listing'
require 'purecloudplatformclientv2/models/facet_entry'
require 'purecloudplatformclientv2/models/facet_info'
require 'purecloudplatformclientv2/models/facet_key_attribute'
require 'purecloudplatformclientv2/models/facet_statistics'
require 'purecloudplatformclientv2/models/facet_term'
require 'purecloudplatformclientv2/models/failed_object'
require 'purecloudplatformclientv2/models/fax_data_v2_notification'
require 'purecloudplatformclientv2/models/fax_data_v2_notification_lock_data'
require 'purecloudplatformclientv2/models/fax_data_v2_notification_lock_info'
require 'purecloudplatformclientv2/models/fax_data_v2_notification_user_data'
require 'purecloudplatformclientv2/models/fax_data_v2_notification_workspace_data'
require 'purecloudplatformclientv2/models/fax_document'
require 'purecloudplatformclientv2/models/fax_document_entity_listing'
require 'purecloudplatformclientv2/models/fax_send_request'
require 'purecloudplatformclientv2/models/fax_send_response'
require 'purecloudplatformclientv2/models/fax_status'
require 'purecloudplatformclientv2/models/fax_summary'
require 'purecloudplatformclientv2/models/feature_state'
require 'purecloudplatformclientv2/models/field_config'
require 'purecloudplatformclientv2/models/field_configs'
require 'purecloudplatformclientv2/models/field_list'
require 'purecloudplatformclientv2/models/flow'
require 'purecloudplatformclientv2/models/flow_entity_listing'
require 'purecloudplatformclientv2/models/flow_notification_notification'
require 'purecloudplatformclientv2/models/flow_notification_notification_architect_operation'
require 'purecloudplatformclientv2/models/flow_notification_notification_error_detail'
require 'purecloudplatformclientv2/models/flow_notification_notification_error_message_params'
require 'purecloudplatformclientv2/models/flow_notification_notification_flow_version'
require 'purecloudplatformclientv2/models/flow_notification_notification_user'
require 'purecloudplatformclientv2/models/flow_version'
require 'purecloudplatformclientv2/models/flow_version_entity_listing'
require 'purecloudplatformclientv2/models/g_suite'
require 'purecloudplatformclientv2/models/geolocation'
require 'purecloudplatformclientv2/models/geolocation_notification'
require 'purecloudplatformclientv2/models/geolocation_settings'
require 'purecloudplatformclientv2/models/greeting'
require 'purecloudplatformclientv2/models/greeting_audio_file'
require 'purecloudplatformclientv2/models/greeting_listing'
require 'purecloudplatformclientv2/models/greeting_media_info'
require 'purecloudplatformclientv2/models/greeting_owner'
require 'purecloudplatformclientv2/models/group'
require 'purecloudplatformclientv2/models/group_contact'
require 'purecloudplatformclientv2/models/group_entity_listing'
require 'purecloudplatformclientv2/models/group_members_update'
require 'purecloudplatformclientv2/models/group_search_criteria'
require 'purecloudplatformclientv2/models/group_search_request'
require 'purecloudplatformclientv2/models/group_update'
require 'purecloudplatformclientv2/models/groups_search_response'
require 'purecloudplatformclientv2/models/heart_beat_alert'
require 'purecloudplatformclientv2/models/heart_beat_alert_container'
require 'purecloudplatformclientv2/models/heart_beat_alert_notification'
require 'purecloudplatformclientv2/models/heart_beat_alert_notification_notification_user'
require 'purecloudplatformclientv2/models/heart_beat_alert_notification_notification_users'
require 'purecloudplatformclientv2/models/heart_beat_rule'
require 'purecloudplatformclientv2/models/heart_beat_rule_container'
require 'purecloudplatformclientv2/models/heart_beat_rule_notification'
require 'purecloudplatformclientv2/models/heart_beat_rule_notification_notification_user'
require 'purecloudplatformclientv2/models/identity_now'
require 'purecloudplatformclientv2/models/import_status'
require 'purecloudplatformclientv2/models/import_status_notification'
require 'purecloudplatformclientv2/models/inbound_domain'
require 'purecloudplatformclientv2/models/inbound_domain_entity_listing'
require 'purecloudplatformclientv2/models/inbound_route'
require 'purecloudplatformclientv2/models/inbound_route_entity_listing'
require 'purecloudplatformclientv2/models/initiate_screen_recording'
require 'purecloudplatformclientv2/models/interaction_stat_alert_notification'
require 'purecloudplatformclientv2/models/interaction_stat_alert_notification_notification_user'
require 'purecloudplatformclientv2/models/interaction_stat_rule_notification'
require 'purecloudplatformclientv2/models/interaction_stat_rule_notification_notification_user'
require 'purecloudplatformclientv2/models/interaction_stats_alert'
require 'purecloudplatformclientv2/models/interaction_stats_alert_container'
require 'purecloudplatformclientv2/models/interaction_stats_rule'
require 'purecloudplatformclientv2/models/interaction_stats_rule_container'
require 'purecloudplatformclientv2/models/intraday_data_group'
require 'purecloudplatformclientv2/models/intraday_data_update_notification'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_forecast_data_per_interval'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_historical_agent_data_per_interval'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_historical_queue_data_per_interval'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_data_group'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_data_groupings'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_forecast_data'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_historical_agent_data'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_historical_queue_data'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_metric'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_performance_prediction_agent_data'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_performance_prediction_queue_data'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_intraday_schedule_data'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_metrics'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_performance_prediction_agent_data_per_interval'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_performance_prediction_queue_data_per_interval'
require 'purecloudplatformclientv2/models/intraday_data_update_notification_schedule_data_per_interval'
require 'purecloudplatformclientv2/models/intraday_forecast_data'
require 'purecloudplatformclientv2/models/intraday_historical_agent_data'
require 'purecloudplatformclientv2/models/intraday_historical_queue_data'
require 'purecloudplatformclientv2/models/intraday_metric'
require 'purecloudplatformclientv2/models/intraday_performance_prediction_agent_data'
require 'purecloudplatformclientv2/models/intraday_performance_prediction_queue_data'
require 'purecloudplatformclientv2/models/intraday_query_data_command'
require 'purecloudplatformclientv2/models/intraday_queue'
require 'purecloudplatformclientv2/models/intraday_response'
require 'purecloudplatformclientv2/models/intraday_schedule_data'
require 'purecloudplatformclientv2/models/json_node'
require 'purecloudplatformclientv2/models/json_node_search_response'
require 'purecloudplatformclientv2/models/json_schema_document'
require 'purecloudplatformclientv2/models/key_rotation_schedule'
require 'purecloudplatformclientv2/models/keyword'
require 'purecloudplatformclientv2/models/keyword_set'
require 'purecloudplatformclientv2/models/keyword_set_entity_listing'
require 'purecloudplatformclientv2/models/language'
require 'purecloudplatformclientv2/models/language_entity_listing'
require 'purecloudplatformclientv2/models/library'
require 'purecloudplatformclientv2/models/library_entity_listing'
require 'purecloudplatformclientv2/models/license_assignment_request'
require 'purecloudplatformclientv2/models/license_batch_assignment_request'
require 'purecloudplatformclientv2/models/license_definition'
require 'purecloudplatformclientv2/models/license_definition_listing'
require 'purecloudplatformclientv2/models/license_organization'
require 'purecloudplatformclientv2/models/license_update_response'
require 'purecloudplatformclientv2/models/license_update_status'
require 'purecloudplatformclientv2/models/license_user'
require 'purecloudplatformclientv2/models/line'
require 'purecloudplatformclientv2/models/line_base'
require 'purecloudplatformclientv2/models/line_base_entity_listing'
require 'purecloudplatformclientv2/models/line_entity_listing'
require 'purecloudplatformclientv2/models/line_status'
require 'purecloudplatformclientv2/models/local_encryption_configuration'
require 'purecloudplatformclientv2/models/local_encryption_configuration_listing'
require 'purecloudplatformclientv2/models/local_encryption_key_request'
require 'purecloudplatformclientv2/models/location'
require 'purecloudplatformclientv2/models/location_address'
require 'purecloudplatformclientv2/models/location_definition'
require 'purecloudplatformclientv2/models/location_emergency_number'
require 'purecloudplatformclientv2/models/location_entity_listing'
require 'purecloudplatformclientv2/models/location_search_criteria'
require 'purecloudplatformclientv2/models/location_search_request'
require 'purecloudplatformclientv2/models/locations_search_response'
require 'purecloudplatformclientv2/models/lock_info'
require 'purecloudplatformclientv2/models/logical_interface_entity_listing'
require 'purecloudplatformclientv2/models/management_unit'
require 'purecloudplatformclientv2/models/max_participants'
require 'purecloudplatformclientv2/models/media_participant_request'
require 'purecloudplatformclientv2/models/media_policies'
require 'purecloudplatformclientv2/models/media_result'
require 'purecloudplatformclientv2/models/media_setting'
require 'purecloudplatformclientv2/models/media_summary'
require 'purecloudplatformclientv2/models/media_summary_detail'
require 'purecloudplatformclientv2/models/media_transcription'
require 'purecloudplatformclientv2/models/member_entity'
require 'purecloudplatformclientv2/models/meta_data'
require 'purecloudplatformclientv2/models/metabase'
require 'purecloudplatformclientv2/models/metered_evaluation_assignment'
require 'purecloudplatformclientv2/models/note'
require 'purecloudplatformclientv2/models/note_listing'
require 'purecloudplatformclientv2/models/number'
require 'purecloudplatformclientv2/models/number_plan'
require 'purecloudplatformclientv2/models/numeric_range'
require 'purecloudplatformclientv2/models/o_auth_client'
require 'purecloudplatformclientv2/models/o_auth_client_entity_listing'
require 'purecloudplatformclientv2/models/o_auth_client_listing'
require 'purecloudplatformclientv2/models/o_auth_provider'
require 'purecloudplatformclientv2/models/o_auth_provider_entity_listing'
require 'purecloudplatformclientv2/models/observation_data_container'
require 'purecloudplatformclientv2/models/observation_query'
require 'purecloudplatformclientv2/models/observation_query_response'
require 'purecloudplatformclientv2/models/okta'
require 'purecloudplatformclientv2/models/one_login'
require 'purecloudplatformclientv2/models/operation'
require 'purecloudplatformclientv2/models/org_media_utilization'
require 'purecloudplatformclientv2/models/org_o_auth_client'
require 'purecloudplatformclientv2/models/organization'
require 'purecloudplatformclientv2/models/organization_features'
require 'purecloudplatformclientv2/models/organization_presence'
require 'purecloudplatformclientv2/models/organization_presence_entity_listing'
require 'purecloudplatformclientv2/models/organization_product_entity_listing'
require 'purecloudplatformclientv2/models/organization_role_entity_listing'
require 'purecloudplatformclientv2/models/orphan_recording'
require 'purecloudplatformclientv2/models/orphan_recording_listing'
require 'purecloudplatformclientv2/models/orphan_update_request'
require 'purecloudplatformclientv2/models/out_of_office'
require 'purecloudplatformclientv2/models/out_of_office_notification'
require 'purecloudplatformclientv2/models/out_of_office_notification_user'
require 'purecloudplatformclientv2/models/outbound_route'
require 'purecloudplatformclientv2/models/outbound_route_base'
require 'purecloudplatformclientv2/models/outbound_route_base_entity_listing'
require 'purecloudplatformclientv2/models/outbound_route_entity_listing'
require 'purecloudplatformclientv2/models/pin_configuration'
require 'purecloudplatformclientv2/models/page'
require 'purecloudplatformclientv2/models/paging_spec'
require 'purecloudplatformclientv2/models/parameter'
require 'purecloudplatformclientv2/models/parsed_certificate'
require 'purecloudplatformclientv2/models/participant'
require 'purecloudplatformclientv2/models/participant_attributes'
require 'purecloudplatformclientv2/models/participant_basic'
require 'purecloudplatformclientv2/models/permission_collection_entity_listing'
require 'purecloudplatformclientv2/models/permissions'
require 'purecloudplatformclientv2/models/phone'
require 'purecloudplatformclientv2/models/phone_base'
require 'purecloudplatformclientv2/models/phone_base_entity_listing'
require 'purecloudplatformclientv2/models/phone_capabilities'
require 'purecloudplatformclientv2/models/phone_column'
require 'purecloudplatformclientv2/models/phone_entity_listing'
require 'purecloudplatformclientv2/models/phone_meta_base_entity_listing'
require 'purecloudplatformclientv2/models/phone_number'
require 'purecloudplatformclientv2/models/phone_number_column'
require 'purecloudplatformclientv2/models/phone_number_status'
require 'purecloudplatformclientv2/models/phone_status'
require 'purecloudplatformclientv2/models/phones_reboot'
require 'purecloudplatformclientv2/models/physical_interface_entity_listing'
require 'purecloudplatformclientv2/models/ping_identity'
require 'purecloudplatformclientv2/models/policy'
require 'purecloudplatformclientv2/models/policy_actions'
require 'purecloudplatformclientv2/models/policy_conditions'
require 'purecloudplatformclientv2/models/policy_create'
require 'purecloudplatformclientv2/models/policy_entity_listing'
require 'purecloudplatformclientv2/models/policy_error_message'
require 'purecloudplatformclientv2/models/policy_errors'
require 'purecloudplatformclientv2/models/prediction_results'
require 'purecloudplatformclientv2/models/presence_query_response'
require 'purecloudplatformclientv2/models/prompt'
require 'purecloudplatformclientv2/models/prompt_asset'
require 'purecloudplatformclientv2/models/prompt_asset_create'
require 'purecloudplatformclientv2/models/prompt_asset_entity_listing'
require 'purecloudplatformclientv2/models/prompt_entity_listing'
require 'purecloudplatformclientv2/models/prompt_notification_notification'
require 'purecloudplatformclientv2/models/prompt_notification_notification_architect_operation'
require 'purecloudplatformclientv2/models/prompt_notification_notification_current_operation'
require 'purecloudplatformclientv2/models/prompt_notification_notification_current_operation_error_details'
require 'purecloudplatformclientv2/models/prompt_notification_notification_current_operation_error_message_params'
require 'purecloudplatformclientv2/models/prompt_notification_notification_error_detail'
require 'purecloudplatformclientv2/models/prompt_notification_notification_error_message_params'
require 'purecloudplatformclientv2/models/prompt_notification_notification_user'
require 'purecloudplatformclientv2/models/prompt_resource_notification_notification'
require 'purecloudplatformclientv2/models/property_index_request'
require 'purecloudplatformclientv2/models/provision_info'
require 'purecloudplatformclientv2/models/publish_flow_notification_notification'
require 'purecloudplatformclientv2/models/pure_cloud'
require 'purecloudplatformclientv2/models/qualifier_mapping_observation_query_response'
require 'purecloudplatformclientv2/models/quality_audit'
require 'purecloudplatformclientv2/models/quality_audit_page'
require 'purecloudplatformclientv2/models/query_facet_info'
require 'purecloudplatformclientv2/models/query_request'
require 'purecloudplatformclientv2/models/query_result'
require 'purecloudplatformclientv2/models/query_results'
require 'purecloudplatformclientv2/models/question'
require 'purecloudplatformclientv2/models/question_group'
require 'purecloudplatformclientv2/models/question_group_score'
require 'purecloudplatformclientv2/models/question_score'
require 'purecloudplatformclientv2/models/queue'
require 'purecloudplatformclientv2/models/queue_email_address'
require 'purecloudplatformclientv2/models/queue_entity_listing'
require 'purecloudplatformclientv2/models/queue_member'
require 'purecloudplatformclientv2/models/queue_member_entity_listing'
require 'purecloudplatformclientv2/models/queue_member_notification'
require 'purecloudplatformclientv2/models/queue_utilization_diagnostic'
require 'purecloudplatformclientv2/models/reaction'
require 'purecloudplatformclientv2/models/recall_entry'
require 'purecloudplatformclientv2/models/recording'
require 'purecloudplatformclientv2/models/recording_data_v2_notification'
require 'purecloudplatformclientv2/models/recording_data_v2_notification_conversation_data'
require 'purecloudplatformclientv2/models/recording_data_v2_notification_lock_data'
require 'purecloudplatformclientv2/models/recording_data_v2_notification_lock_info'
require 'purecloudplatformclientv2/models/recording_data_v2_notification_user_data'
require 'purecloudplatformclientv2/models/recording_data_v2_notification_workspace_data'
require 'purecloudplatformclientv2/models/recording_email_message'
require 'purecloudplatformclientv2/models/recording_settings'
require 'purecloudplatformclientv2/models/relationship'
require 'purecloudplatformclientv2/models/relationship_listing'
require 'purecloudplatformclientv2/models/replace_request'
require 'purecloudplatformclientv2/models/replace_response'
require 'purecloudplatformclientv2/models/report_meta_data'
require 'purecloudplatformclientv2/models/report_meta_data_entity_listing'
require 'purecloudplatformclientv2/models/report_run_entry'
require 'purecloudplatformclientv2/models/report_run_entry_entity_domain_listing'
require 'purecloudplatformclientv2/models/report_schedule'
require 'purecloudplatformclientv2/models/report_schedule_entity_listing'
require 'purecloudplatformclientv2/models/resource_condition_node'
require 'purecloudplatformclientv2/models/resource_condition_value'
require 'purecloudplatformclientv2/models/resource_permission_policy'
require 'purecloudplatformclientv2/models/response'
require 'purecloudplatformclientv2/models/response_entity_list'
require 'purecloudplatformclientv2/models/response_entity_listing'
require 'purecloudplatformclientv2/models/response_filter'
require 'purecloudplatformclientv2/models/response_query_request'
require 'purecloudplatformclientv2/models/response_query_results'
require 'purecloudplatformclientv2/models/response_set'
require 'purecloudplatformclientv2/models/response_set_entity_listing'
require 'purecloudplatformclientv2/models/response_set_notification'
require 'purecloudplatformclientv2/models/response_set_notification_reaction'
require 'purecloudplatformclientv2/models/response_set_notification_responses'
require 'purecloudplatformclientv2/models/response_substitution'
require 'purecloudplatformclientv2/models/response_text'
require 'purecloudplatformclientv2/models/rest_error_detail'
require 'purecloudplatformclientv2/models/retention_duration'
require 'purecloudplatformclientv2/models/reverse_whitepages_lookup_result'
require 'purecloudplatformclientv2/models/ring'
require 'purecloudplatformclientv2/models/routing_data'
require 'purecloudplatformclientv2/models/routing_skill'
require 'purecloudplatformclientv2/models/routing_status'
require 'purecloudplatformclientv2/models/routing_status_alert'
require 'purecloudplatformclientv2/models/routing_status_alert_container'
require 'purecloudplatformclientv2/models/routing_status_rule'
require 'purecloudplatformclientv2/models/routing_status_rule_container'
require 'purecloudplatformclientv2/models/rule_set'
require 'purecloudplatformclientv2/models/rule_set_diagnostic'
require 'purecloudplatformclientv2/models/rule_set_entity_listing'
require 'purecloudplatformclientv2/models/rule_set_notification'
require 'purecloudplatformclientv2/models/rule_set_notification_action'
require 'purecloudplatformclientv2/models/rule_set_notification_actions'
require 'purecloudplatformclientv2/models/rule_set_notification_condition'
require 'purecloudplatformclientv2/models/rule_set_notification_conditions'
require 'purecloudplatformclientv2/models/rule_set_notification_rule'
require 'purecloudplatformclientv2/models/rule_set_notification_rules'
require 'purecloudplatformclientv2/models/rule_set_notification_uri_reference'
require 'purecloudplatformclientv2/models/run_now_response'
require 'purecloudplatformclientv2/models/salesforce'
require 'purecloudplatformclientv2/models/schedule_interval'
require 'purecloudplatformclientv2/models/schema_category'
require 'purecloudplatformclientv2/models/schema_category_entity_listing'
require 'purecloudplatformclientv2/models/schema_reference_entity_listing'
require 'purecloudplatformclientv2/models/screen_recording_session'
require 'purecloudplatformclientv2/models/screen_recording_session_listing'
require 'purecloudplatformclientv2/models/screen_recording_session_request'
require 'purecloudplatformclientv2/models/screen_share_conversation_notification'
require 'purecloudplatformclientv2/models/screen_share_conversation_notification_detail'
require 'purecloudplatformclientv2/models/screen_share_conversation_notification_error_body'
require 'purecloudplatformclientv2/models/screen_share_conversation_notification_error_info'
require 'purecloudplatformclientv2/models/screen_share_conversation_notification_participants'
require 'purecloudplatformclientv2/models/screen_share_conversation_notification_screen_share_media_participant'
require 'purecloudplatformclientv2/models/screen_share_conversation_notification_uri_reference'
require 'purecloudplatformclientv2/models/screen_share_conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/screenshare'
require 'purecloudplatformclientv2/models/script'
require 'purecloudplatformclientv2/models/script_entity_listing'
require 'purecloudplatformclientv2/models/search_aggregation'
require 'purecloudplatformclientv2/models/search_criteria'
require 'purecloudplatformclientv2/models/search_request'
require 'purecloudplatformclientv2/models/section'
require 'purecloudplatformclientv2/models/security_profile'
require 'purecloudplatformclientv2/models/security_profile_entity_listing'
require 'purecloudplatformclientv2/models/segment'
require 'purecloudplatformclientv2/models/sequence_schedule'
require 'purecloudplatformclientv2/models/sequence_schedule_notification'
require 'purecloudplatformclientv2/models/sequence_schedule_notification_schedule_interval'
require 'purecloudplatformclientv2/models/sequence_schedule_notification_uri_reference'
require 'purecloudplatformclientv2/models/server_date'
require 'purecloudplatformclientv2/models/service_context'
require 'purecloudplatformclientv2/models/service_level'
require 'purecloudplatformclientv2/models/share'
require 'purecloudplatformclientv2/models/share_entity_listing'
require 'purecloudplatformclientv2/models/shared_entity'
require 'purecloudplatformclientv2/models/shared_response'
require 'purecloudplatformclientv2/models/site'
require 'purecloudplatformclientv2/models/site_entity_listing'
require 'purecloudplatformclientv2/models/skill_entity_listing'
require 'purecloudplatformclientv2/models/skills_to_remove'
require 'purecloudplatformclientv2/models/social_conversation_notification'
require 'purecloudplatformclientv2/models/social_conversation_notification_detail'
require 'purecloudplatformclientv2/models/social_conversation_notification_error_body'
require 'purecloudplatformclientv2/models/social_conversation_notification_error_info'
require 'purecloudplatformclientv2/models/social_conversation_notification_participants'
require 'purecloudplatformclientv2/models/social_conversation_notification_social_media_participant'
require 'purecloudplatformclientv2/models/social_conversation_notification_uri_reference'
require 'purecloudplatformclientv2/models/social_conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/social_expression'
require 'purecloudplatformclientv2/models/sort_item'
require 'purecloudplatformclientv2/models/station'
require 'purecloudplatformclientv2/models/station_entity_listing'
require 'purecloudplatformclientv2/models/statistical_response'
require 'purecloudplatformclientv2/models/statistical_summary'
require 'purecloudplatformclientv2/models/street_address'
require 'purecloudplatformclientv2/models/subscriber_response'
require 'purecloudplatformclientv2/models/suggest_search_criteria'
require 'purecloudplatformclientv2/models/suggest_search_request'
require 'purecloudplatformclientv2/models/system_presence'
require 'purecloudplatformclientv2/models/system_prompt'
require 'purecloudplatformclientv2/models/system_prompt_asset'
require 'purecloudplatformclientv2/models/system_prompt_asset_entity_listing'
require 'purecloudplatformclientv2/models/system_prompt_entity_listing'
require 'purecloudplatformclientv2/models/system_prompt_resource_notification_notification'
require 'purecloudplatformclientv2/models/tag_query_request'
require 'purecloudplatformclientv2/models/tag_value'
require 'purecloudplatformclientv2/models/tag_value_entity_listing'
require 'purecloudplatformclientv2/models/term_attribute'
require 'purecloudplatformclientv2/models/ticker'
require 'purecloudplatformclientv2/models/time_allowed'
require 'purecloudplatformclientv2/models/time_interval'
require 'purecloudplatformclientv2/models/time_off_request'
require 'purecloudplatformclientv2/models/time_off_request_list'
require 'purecloudplatformclientv2/models/time_off_request_patch'
require 'purecloudplatformclientv2/models/time_off_request_update_notification'
require 'purecloudplatformclientv2/models/time_off_request_update_notification_user'
require 'purecloudplatformclientv2/models/time_slot'
require 'purecloudplatformclientv2/models/time_zone'
require 'purecloudplatformclientv2/models/time_zone_entity_listing'
require 'purecloudplatformclientv2/models/token_info'
require 'purecloudplatformclientv2/models/transfer_request'
require 'purecloudplatformclientv2/models/trunk'
require 'purecloudplatformclientv2/models/trunk_base'
require 'purecloudplatformclientv2/models/trunk_base_assignment'
require 'purecloudplatformclientv2/models/trunk_base_entity_listing'
require 'purecloudplatformclientv2/models/trunk_connected_status'
require 'purecloudplatformclientv2/models/trunk_entity_listing'
require 'purecloudplatformclientv2/models/trunk_error_info'
require 'purecloudplatformclientv2/models/trunk_error_info_details'
require 'purecloudplatformclientv2/models/trunk_metabase_entity_listing'
require 'purecloudplatformclientv2/models/trunk_metrics_network_type_ip'
require 'purecloudplatformclientv2/models/trunk_metrics_options'
require 'purecloudplatformclientv2/models/trunk_metrics_registers'
require 'purecloudplatformclientv2/models/trunk_recording_enabled_count'
require 'purecloudplatformclientv2/models/twitter_id'
require 'purecloudplatformclientv2/models/unread_metric'
require 'purecloudplatformclientv2/models/unread_status'
require 'purecloudplatformclientv2/models/update_user'
require 'purecloudplatformclientv2/models/uri_reference'
require 'purecloudplatformclientv2/models/usage'
require 'purecloudplatformclientv2/models/usage_item'
require 'purecloudplatformclientv2/models/user'
require 'purecloudplatformclientv2/models/user_agent_info'
require 'purecloudplatformclientv2/models/user_authorization'
require 'purecloudplatformclientv2/models/user_conversation_summary'
require 'purecloudplatformclientv2/models/user_conversation_summary_notification'
require 'purecloudplatformclientv2/models/user_conversation_summary_notification_call'
require 'purecloudplatformclientv2/models/user_conversation_summary_notification_call_contact_center'
require 'purecloudplatformclientv2/models/user_conversation_summary_notification_media_summary'
require 'purecloudplatformclientv2/models/user_conversation_summary_notification_media_summary_detail'
require 'purecloudplatformclientv2/models/user_details_query'
require 'purecloudplatformclientv2/models/user_entity_listing'
require 'purecloudplatformclientv2/models/user_image'
require 'purecloudplatformclientv2/models/user_list_schedule_request_body'
require 'purecloudplatformclientv2/models/user_me'
require 'purecloudplatformclientv2/models/user_param'
require 'purecloudplatformclientv2/models/user_presence'
require 'purecloudplatformclientv2/models/user_presence_alert'
require 'purecloudplatformclientv2/models/user_presence_alert_container'
require 'purecloudplatformclientv2/models/user_presence_notification'
require 'purecloudplatformclientv2/models/user_presence_notification_organization_presence'
require 'purecloudplatformclientv2/models/user_presence_notification_presence_definition'
require 'purecloudplatformclientv2/models/user_presence_rule'
require 'purecloudplatformclientv2/models/user_presence_rule_container'
require 'purecloudplatformclientv2/models/user_queue'
require 'purecloudplatformclientv2/models/user_queue_entity_listing'
require 'purecloudplatformclientv2/models/user_recording'
require 'purecloudplatformclientv2/models/user_recording_entity_listing'
require 'purecloudplatformclientv2/models/user_routing_skill'
require 'purecloudplatformclientv2/models/user_routing_skill_post'
require 'purecloudplatformclientv2/models/user_routing_status_notification'
require 'purecloudplatformclientv2/models/user_routing_status_notification_routing_status'
require 'purecloudplatformclientv2/models/user_schedule'
require 'purecloudplatformclientv2/models/user_schedule_activity'
require 'purecloudplatformclientv2/models/user_schedule_adherence'
require 'purecloudplatformclientv2/models/user_schedule_adherence_update_notification'
require 'purecloudplatformclientv2/models/user_schedule_adherence_update_notification_user'
require 'purecloudplatformclientv2/models/user_schedule_container'
require 'purecloudplatformclientv2/models/user_schedule_full_day_time_off_marker'
require 'purecloudplatformclientv2/models/user_schedule_shift'
require 'purecloudplatformclientv2/models/user_search_criteria'
require 'purecloudplatformclientv2/models/user_search_request'
require 'purecloudplatformclientv2/models/user_skill_entity_listing'
require 'purecloudplatformclientv2/models/user_station'
require 'purecloudplatformclientv2/models/user_stations'
require 'purecloudplatformclientv2/models/user_stations_notification'
require 'purecloudplatformclientv2/models/user_stations_notification_associated_station'
require 'purecloudplatformclientv2/models/user_stations_notification_user'
require 'purecloudplatformclientv2/models/user_stations_notification_user_station'
require 'purecloudplatformclientv2/models/users_search_response'
require 'purecloudplatformclientv2/models/utilization'
require 'purecloudplatformclientv2/models/validate_address_request'
require 'purecloudplatformclientv2/models/validate_address_response'
require 'purecloudplatformclientv2/models/video'
require 'purecloudplatformclientv2/models/video_conversation_notification'
require 'purecloudplatformclientv2/models/video_conversation_notification_detail'
require 'purecloudplatformclientv2/models/video_conversation_notification_error_body'
require 'purecloudplatformclientv2/models/video_conversation_notification_error_info'
require 'purecloudplatformclientv2/models/video_conversation_notification_participants'
require 'purecloudplatformclientv2/models/video_conversation_notification_uri_reference'
require 'purecloudplatformclientv2/models/video_conversation_notification_video_media_participant'
require 'purecloudplatformclientv2/models/video_conversation_notification_wrapup'
require 'purecloudplatformclientv2/models/visibility_condition'
require 'purecloudplatformclientv2/models/vm_pairing_info'
require 'purecloudplatformclientv2/models/voicemail'
require 'purecloudplatformclientv2/models/voicemail_copy_record'
require 'purecloudplatformclientv2/models/voicemail_group_policy'
require 'purecloudplatformclientv2/models/voicemail_mailbox_info'
require 'purecloudplatformclientv2/models/voicemail_media_info'
require 'purecloudplatformclientv2/models/voicemail_message'
require 'purecloudplatformclientv2/models/voicemail_message_entity_listing'
require 'purecloudplatformclientv2/models/voicemail_message_notification'
require 'purecloudplatformclientv2/models/voicemail_organization_policy'
require 'purecloudplatformclientv2/models/voicemail_search_criteria'
require 'purecloudplatformclientv2/models/voicemail_search_request'
require 'purecloudplatformclientv2/models/voicemail_user_policy'
require 'purecloudplatformclientv2/models/voicemails_search_response'
require 'purecloudplatformclientv2/models/wfm_intraday_queue_listing'
require 'purecloudplatformclientv2/models/wfm_user_entity_listing'
require 'purecloudplatformclientv2/models/workspace'
require 'purecloudplatformclientv2/models/workspace_create'
require 'purecloudplatformclientv2/models/workspace_entity_listing'
require 'purecloudplatformclientv2/models/workspace_member'
require 'purecloudplatformclientv2/models/workspace_member_entity_listing'
require 'purecloudplatformclientv2/models/workspace_summary'
require 'purecloudplatformclientv2/models/wrap_up_code_mapping'
require 'purecloudplatformclientv2/models/wrap_up_code_mapping_notification'
require 'purecloudplatformclientv2/models/wrapup'
require 'purecloudplatformclientv2/models/wrapup_code'
require 'purecloudplatformclientv2/models/wrapup_code_entity_listing'

# APIs
require 'purecloudplatformclientv2/api/alerting_api'
require 'purecloudplatformclientv2/api/analytics_api'
require 'purecloudplatformclientv2/api/architect_api'
require 'purecloudplatformclientv2/api/attributes_api'
require 'purecloudplatformclientv2/api/authorization_api'
require 'purecloudplatformclientv2/api/content_management_api'
require 'purecloudplatformclientv2/api/conversations_api'
require 'purecloudplatformclientv2/api/external_contacts_api'
require 'purecloudplatformclientv2/api/fax_api'
require 'purecloudplatformclientv2/api/geolocation_api'
require 'purecloudplatformclientv2/api/greetings_api'
require 'purecloudplatformclientv2/api/groups_api'
require 'purecloudplatformclientv2/api/identity_provider_api'
require 'purecloudplatformclientv2/api/languages_api'
require 'purecloudplatformclientv2/api/license_api'
require 'purecloudplatformclientv2/api/locations_api'
require 'purecloudplatformclientv2/api/notifications_api'
require 'purecloudplatformclientv2/api/o_auth_api'
require 'purecloudplatformclientv2/api/organization_api'
require 'purecloudplatformclientv2/api/outbound_api'
require 'purecloudplatformclientv2/api/presence_api'
require 'purecloudplatformclientv2/api/quality_api'
require 'purecloudplatformclientv2/api/recording_api'
require 'purecloudplatformclientv2/api/response_management_api'
require 'purecloudplatformclientv2/api/routing_api'
require 'purecloudplatformclientv2/api/scripts_api'
require 'purecloudplatformclientv2/api/search_api'
require 'purecloudplatformclientv2/api/stations_api'
require 'purecloudplatformclientv2/api/suggest_api'
require 'purecloudplatformclientv2/api/telephony_providers_edge_api'
require 'purecloudplatformclientv2/api/tokens_api'
require 'purecloudplatformclientv2/api/user_recordings_api'
require 'purecloudplatformclientv2/api/users_api'
require 'purecloudplatformclientv2/api/utilities_api'
require 'purecloudplatformclientv2/api/voicemail_api'
require 'purecloudplatformclientv2/api/workforce_management_api'

module PureCloud
  class << self
    # Customize default settings for the SDK using block.
    #   PureCloud.configure do |config|
    #     config.username = "xxx"
    #     config.password = "xxx"
    #   end
    # If no block given, return the default Configuration object.
    def configure
      if block_given?
        yield(Configuration.default)
      else
        Configuration.default
      end
    end
  end
end
require 'rest_client'
require 'json'
require 'base64'

module PureCloud
  class << self
    # Authenticates to PureCloud using the client credientals OAuth grant.
    #
    # @param client_id OAuth client id
    # @param client_secret OAuth client secret
    # @param environment PureCloud environment (mypurecloud.com, mypurecloud.ie, mypurecloud.com.au, etc)
    def authenticate_with_client_credentials(client_id, client_secret, environment = nil)
      environment ||= "mypurecloud.com"
      self.configure.host = 'api.' + environment;

      basic = Base64.strict_encode64("#{client_id}:#{client_secret}")

      tokenData = JSON.parse RestClient.post("https://login.#{environment}/token",
                              {:grant_type => 'client_credentials'},
                              :Authorization => "Basic " + basic,
                              'content-type'=> 'application/x-www-form-urlencoded',
                              :accept => :json)
      self.configure.access_token = tokenData["access_token"]
    end

    # Retrieves an Access token given an authorization code (authorization code grant)
    #
    # @param auth_code Authorization code from the OAuth redirec
    # @param client_id OAuth client id
    # @param client_secret OAuth client secret
    # @param client_secret OAuth redirect URI
    # @param environment (Optional) PureCloud environment (mypurecloud.com, mypurecloud.ie, mypurecloud.com.au, etc)
    def get_access_token_from_auth_code(auth_code, client_id, client_secret, redirect_uri, environment = nil)
      environment ||= "mypurecloud.com"

      tokenFormData = {
        "grant_type" => "authorization_code",
        "code" => auth_code,
        "redirect_uri" => redirect_uri
      }

      tokenResponse =JSON.parse RestClient.post "https://#{client_id}:#{client_secret}@login.#{environment}/token", tokenFormData

      return tokenResponse['access_token'];
    end
  end
end