=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@inin.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 require "uri" module PureCloud class WorkforceManagementApi attr_accessor :api_client def initialize(api_client = ApiClient.default) @api_client = api_client end # Get a list of UserScheduleAdherence records for the requested users # # @param user_id User Id(s) for which to fetch current schedule adherence information. Max of 100 userIds per request # @param [Hash] opts the optional parameters # @return [UserScheduleAdherence] def get_adherence(user_id, opts = {}) data, status_code, headers = get_adherence_with_http_info(user_id, opts) return data end # Get a list of UserScheduleAdherence records for the requested users # # @param user_id User Id(s) for which to fetch current schedule adherence information. Max of 100 userIds per request # @param [Hash] opts the optional parameters # @return [Array<(UserScheduleAdherence, Fixnum, Hash)>] UserScheduleAdherence data, response status code and response headers def get_adherence_with_http_info(user_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#get_adherence ..." end # verify the required parameter 'user_id' is set fail "Missing the required parameter 'user_id' when calling get_adherence" if user_id.nil? # resource path local_var_path = "/api/v2/workforcemanagement/adherence".sub('{format}','json') # query parameters query_params = {} query_params[:'userId'] = @api_client.build_collection_param(user_id, :multi) # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'UserScheduleAdherence') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#get_adherence\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Get decisions download link # # @param download_id The decisions file download id # @param [Hash] opts the optional parameters # @option opts [String] :downloadfilename The file name used to get the download url (default to downloadfilename) # @return [DecisionsDownloadLink] def get_decisions_downloads_download_id(download_id, opts = {}) data, status_code, headers = get_decisions_downloads_download_id_with_http_info(download_id, opts) return data end # Get decisions download link # # @param download_id The decisions file download id # @param [Hash] opts the optional parameters # @option opts [String] :downloadfilename The file name used to get the download url # @return [Array<(DecisionsDownloadLink, Fixnum, Hash)>] DecisionsDownloadLink data, response status code and response headers def get_decisions_downloads_download_id_with_http_info(download_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#get_decisions_downloads_download_id ..." end # verify the required parameter 'download_id' is set fail "Missing the required parameter 'download_id' when calling get_decisions_downloads_download_id" if download_id.nil? # resource path local_var_path = "/api/v2/workforcemanagement/decisions/downloads/{downloadId}".sub('{format}','json').sub('{' + 'downloadId' + '}', download_id.to_s) # query parameters query_params = {} query_params[:'downloadfilename'] = opts[:'downloadfilename'] if opts[:'downloadfilename'] # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'DecisionsDownloadLink') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#get_decisions_downloads_download_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Get a list of time off requests for any user # # @param mu_id The muId of the management unit. # @param user_id The userId to whom the Time Off Request applies. # @param [Hash] opts the optional parameters # @option opts [BOOLEAN] :recently_reviewed Limit results to requests that have been reviewed within the preceding 30 days (default to false) # @return [TimeOffRequestList] def get_managementunits_mu_id_users_user_id_timeoffrequests(mu_id, user_id, opts = {}) data, status_code, headers = get_managementunits_mu_id_users_user_id_timeoffrequests_with_http_info(mu_id, user_id, opts) return data end # Get a list of time off requests for any user # # @param mu_id The muId of the management unit. # @param user_id The userId to whom the Time Off Request applies. # @param [Hash] opts the optional parameters # @option opts [BOOLEAN] :recently_reviewed Limit results to requests that have been reviewed within the preceding 30 days # @return [Array<(TimeOffRequestList, Fixnum, Hash)>] TimeOffRequestList data, response status code and response headers def get_managementunits_mu_id_users_user_id_timeoffrequests_with_http_info(mu_id, user_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#get_managementunits_mu_id_users_user_id_timeoffrequests ..." end # verify the required parameter 'mu_id' is set fail "Missing the required parameter 'mu_id' when calling get_managementunits_mu_id_users_user_id_timeoffrequests" if mu_id.nil? # verify the required parameter 'user_id' is set fail "Missing the required parameter 'user_id' when calling get_managementunits_mu_id_users_user_id_timeoffrequests" if user_id.nil? # resource path local_var_path = "/api/v2/workforcemanagement/managementunits/{muId}/users/{userId}/timeoffrequests".sub('{format}','json').sub('{' + 'muId' + '}', mu_id.to_s).sub('{' + 'userId' + '}', user_id.to_s) # query parameters query_params = {} query_params[:'recentlyReviewed'] = opts[:'recently_reviewed'] if opts[:'recently_reviewed'] # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'TimeOffRequestList') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#get_managementunits_mu_id_users_user_id_timeoffrequests\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Get a time off request by id # # @param mu_id The muId of the management unit. # @param user_id The userId to whom the Time Off Request applies. # @param time_off_request_id Time Off Request Id # @param [Hash] opts the optional parameters # @return [TimeOffRequest] def get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id(mu_id, user_id, time_off_request_id, opts = {}) data, status_code, headers = get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id_with_http_info(mu_id, user_id, time_off_request_id, opts) return data end # Get a time off request by id # # @param mu_id The muId of the management unit. # @param user_id The userId to whom the Time Off Request applies. # @param time_off_request_id Time Off Request Id # @param [Hash] opts the optional parameters # @return [Array<(TimeOffRequest, Fixnum, Hash)>] TimeOffRequest data, response status code and response headers def get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id_with_http_info(mu_id, user_id, time_off_request_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id ..." end # verify the required parameter 'mu_id' is set fail "Missing the required parameter 'mu_id' when calling get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id" if mu_id.nil? # verify the required parameter 'user_id' is set fail "Missing the required parameter 'user_id' when calling get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id" if user_id.nil? # verify the required parameter 'time_off_request_id' is set fail "Missing the required parameter 'time_off_request_id' when calling get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id" if time_off_request_id.nil? # resource path local_var_path = "/api/v2/workforcemanagement/managementunits/{muId}/users/{userId}/timeoffrequests/{timeOffRequestId}".sub('{format}','json').sub('{' + 'muId' + '}', mu_id.to_s).sub('{' + 'userId' + '}', user_id.to_s).sub('{' + 'timeOffRequestId' + '}', time_off_request_id.to_s) # query parameters query_params = {} # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'TimeOffRequest') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#get_managementunits_mu_id_users_user_id_timeoffrequests_timeoffrequest_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Get a list of time off requests for the current user # # @param [Hash] opts the optional parameters # @option opts [BOOLEAN] :recently_reviewed Limit results to requests that have been reviewed within the preceding 30 days (default to false) # @return [TimeOffRequestList] def get_timeoffrequests(opts = {}) data, status_code, headers = get_timeoffrequests_with_http_info(opts) return data end # Get a list of time off requests for the current user # # @param [Hash] opts the optional parameters # @option opts [BOOLEAN] :recently_reviewed Limit results to requests that have been reviewed within the preceding 30 days # @return [Array<(TimeOffRequestList, Fixnum, Hash)>] TimeOffRequestList data, response status code and response headers def get_timeoffrequests_with_http_info(opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#get_timeoffrequests ..." end # resource path local_var_path = "/api/v2/workforcemanagement/timeoffrequests".sub('{format}','json') # query parameters query_params = {} query_params[:'recentlyReviewed'] = opts[:'recently_reviewed'] if opts[:'recently_reviewed'] # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'TimeOffRequestList') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#get_timeoffrequests\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Get a time off request for the current user by id # # @param time_off_request_id Time Off Request Id # @param [Hash] opts the optional parameters # @return [TimeOffRequest] def get_timeoffrequests_timeoffrequest_id(time_off_request_id, opts = {}) data, status_code, headers = get_timeoffrequests_timeoffrequest_id_with_http_info(time_off_request_id, opts) return data end # Get a time off request for the current user by id # # @param time_off_request_id Time Off Request Id # @param [Hash] opts the optional parameters # @return [Array<(TimeOffRequest, Fixnum, Hash)>] TimeOffRequest data, response status code and response headers def get_timeoffrequests_timeoffrequest_id_with_http_info(time_off_request_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#get_timeoffrequests_timeoffrequest_id ..." end # verify the required parameter 'time_off_request_id' is set fail "Missing the required parameter 'time_off_request_id' when calling get_timeoffrequests_timeoffrequest_id" if time_off_request_id.nil? # resource path local_var_path = "/api/v2/workforcemanagement/timeoffrequests/{timeOffRequestId}".sub('{format}','json').sub('{' + 'timeOffRequestId' + '}', time_off_request_id.to_s) # query parameters query_params = {} # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'TimeOffRequest') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#get_timeoffrequests_timeoffrequest_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Mark a time off request for the current user as read or unread # # @param time_off_request_id Time Off Request Id # @param [Hash] opts the optional parameters # @option opts [TimeOffRequestPatch] :body # @return [nil] def patch_timeoffrequests_timeoffrequest_id(time_off_request_id, opts = {}) patch_timeoffrequests_timeoffrequest_id_with_http_info(time_off_request_id, opts) return nil end # Mark a time off request for the current user as read or unread # # @param time_off_request_id Time Off Request Id # @param [Hash] opts the optional parameters # @option opts [TimeOffRequestPatch] :body # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers def patch_timeoffrequests_timeoffrequest_id_with_http_info(time_off_request_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#patch_timeoffrequests_timeoffrequest_id ..." end # verify the required parameter 'time_off_request_id' is set fail "Missing the required parameter 'time_off_request_id' when calling patch_timeoffrequests_timeoffrequest_id" if time_off_request_id.nil? # resource path local_var_path = "/api/v2/workforcemanagement/timeoffrequests/{timeOffRequestId}".sub('{format}','json').sub('{' + 'timeOffRequestId' + '}', time_off_request_id.to_s) # query parameters query_params = {} # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = @api_client.object_to_http_body(opts[:'body']) auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names) if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#patch_timeoffrequests_timeoffrequest_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Download decisions files metadata # # @param body # @param [Hash] opts the optional parameters # @return [DecisionsFileMetadataEntityListing] def post_decisions_downloads_search(body, opts = {}) data, status_code, headers = post_decisions_downloads_search_with_http_info(body, opts) return data end # Download decisions files metadata # # @param body # @param [Hash] opts the optional parameters # @return [Array<(DecisionsFileMetadataEntityListing, Fixnum, Hash)>] DecisionsFileMetadataEntityListing data, response status code and response headers def post_decisions_downloads_search_with_http_info(body, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#post_decisions_downloads_search ..." end # verify the required parameter 'body' is set fail "Missing the required parameter 'body' when calling post_decisions_downloads_search" if body.nil? # resource path local_var_path = "/api/v2/workforcemanagement/decisions/downloads/search".sub('{format}','json') # query parameters query_params = {} # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = @api_client.object_to_http_body(body) auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:POST, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'DecisionsFileMetadataEntityListing') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#post_decisions_downloads_search\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Create a forecast # # @param body The request body # @param [Hash] opts the optional parameters # @return [ForecastCreationCompletion] def post_longtermforecasts(body, opts = {}) data, status_code, headers = post_longtermforecasts_with_http_info(body, opts) return data end # Create a forecast # # @param body The request body # @param [Hash] opts the optional parameters # @return [Array<(ForecastCreationCompletion, Fixnum, Hash)>] ForecastCreationCompletion data, response status code and response headers def post_longtermforecasts_with_http_info(body, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#post_longtermforecasts ..." end # verify the required parameter 'body' is set fail "Missing the required parameter 'body' when calling post_longtermforecasts" if body.nil? # resource path local_var_path = "/api/v2/workforcemanagement/longtermforecasts".sub('{format}','json') # query parameters query_params = {} # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = @api_client.object_to_http_body(body) auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:POST, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ForecastCreationCompletion') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#post_longtermforecasts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Get a schedule for the current user # # @param [Hash] opts the optional parameters # @option opts [CurrentUserScheduleRequestBody] :body body # @return [TimeOffRequestList] def post_schedules(opts = {}) data, status_code, headers = post_schedules_with_http_info(opts) return data end # Get a schedule for the current user # # @param [Hash] opts the optional parameters # @option opts [CurrentUserScheduleRequestBody] :body body # @return [Array<(TimeOffRequestList, Fixnum, Hash)>] TimeOffRequestList data, response status code and response headers def post_schedules_with_http_info(opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: WorkforceManagementApi#post_schedules ..." end # resource path local_var_path = "/api/v2/workforcemanagement/schedules".sub('{format}','json') # query parameters query_params = {} # header parameters header_params = {} # HTTP header 'Accept' (if needed) _header_accept = ['application/json'] _header_accept_result = @api_client.select_header_accept(_header_accept) and header_params['Accept'] = _header_accept_result # HTTP header 'Content-Type' _header_content_type = ['application/json'] header_params['Content-Type'] = @api_client.select_header_content_type(_header_content_type) # form parameters form_params = {} # http body (model) post_body = @api_client.object_to_http_body(opts[:'body']) auth_names = ['PureCloud Auth'] data, status_code, headers = @api_client.call_api(:POST, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'TimeOffRequestList') if @api_client.config.debugging @api_client.config.logger.debug "API called: WorkforceManagementApi#post_schedules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end end end