purecloudplatformclientv2 36.1.0 → 37.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/docs/AgentTimeOffRequestPatch.md +15 -0
  4. data/docs/AnalyticsApi.md +2 -2
  5. data/docs/AsgInfoResponse.md +2 -2
  6. data/docs/AsyncWeekScheduleResponse.md +16 -0
  7. data/docs/CallMediaPolicyConditions.md +1 -0
  8. data/docs/CampaignNotification.md +1 -0
  9. data/docs/ChatMediaPolicyConditions.md +1 -0
  10. data/docs/ConversationNotificationMedia.md +3 -0
  11. data/docs/ConversationNotificationMessageDetails.md +1 -0
  12. data/docs/ConversationNotificationMessageMedia.md +3 -0
  13. data/docs/ConversationNotificationMessageSticker.md +14 -0
  14. data/docs/ConversationNotificationMessages.md +1 -0
  15. data/docs/ConversationNotificationStickers.md +14 -0
  16. data/docs/CopyShortTermForecastRequest.md +14 -0
  17. data/docs/CopyWeekScheduleRequest.md +14 -0
  18. data/docs/CopyWorkPlan.md +13 -0
  19. data/docs/CreateAdminTimeOffRequest.md +19 -0
  20. data/docs/CreateAgentTimeOffRequest.md +17 -0
  21. data/docs/CreateAsgRequest.md +1 -1
  22. data/docs/CreateManagementUnitApiRequest.md +17 -0
  23. data/docs/CreateManagementUnitSettings.md +16 -0
  24. data/docs/CreateQueueMediaAssociationRequest.md +14 -0
  25. data/docs/CreateServiceGoalGroupRequest.md +15 -0
  26. data/docs/CreateWorkPlan.md +26 -0
  27. data/docs/CreateWorkPlanActivity.md +23 -0
  28. data/docs/CreateWorkPlanShift.md +29 -0
  29. data/docs/CurrentUserScheduleRequestBody.md +14 -0
  30. data/docs/DateRange.md +14 -0
  31. data/docs/DeletableUserReference.md +15 -0
  32. data/docs/EmailMediaPolicyConditions.md +1 -0
  33. data/docs/ExternalContact.md +3 -1
  34. data/docs/ExternalOrganization.md +1 -1
  35. data/docs/FacebookId.md +14 -0
  36. data/docs/FacebookScopedId.md +13 -0
  37. data/docs/FlowOutcomeNotificationNotification.md +16 -0
  38. data/docs/FlowOutcomeNotificationNotificationArchitectOperation.md +21 -0
  39. data/docs/FlowOutcomeNotificationNotificationErrorDetail.md +16 -0
  40. data/docs/FlowOutcomeNotificationNotificationErrorMessageParams.md +13 -0
  41. data/docs/{SurveyFormUriReference.md → FlowOutcomeNotificationNotificationHomeOrganization.md} +3 -4
  42. data/docs/FlowOutcomeNotificationNotificationUser.md +15 -0
  43. data/docs/ForecastGenerationResult.md +13 -0
  44. data/docs/ForecastGenerationRouteGroupResult.md +14 -0
  45. data/docs/ForecastResultResponse.md +14 -0
  46. data/docs/ForecastSourceDayPointer.md +17 -0
  47. data/docs/ForecastTimeSeriesResult.md +14 -0
  48. data/docs/GenerateShortTermForecastRequest.md +13 -0
  49. data/docs/GenerateShortTermForecastResponse.md +16 -0
  50. data/docs/GenerateWeekScheduleRequest.md +14 -0
  51. data/docs/GenerateWeekScheduleResponse.md +15 -0
  52. data/docs/GroupsApi.md +2 -0
  53. data/docs/HeadcountForecastResponse.md +14 -0
  54. data/docs/HeadcountIntervalResponse.md +14 -0
  55. data/docs/ImportShortTermForecastRequest.md +16 -0
  56. data/docs/ImportWeekScheduleRequest.md +17 -0
  57. data/docs/IntradayDataUpdateNotificationDateTime.md +1 -1
  58. data/docs/IntradayDataUpdateNotificationStartDate.md +1 -1
  59. data/docs/JsonNode.md +1 -1
  60. data/docs/LanguageReference.md +14 -0
  61. data/docs/LineId.md +14 -0
  62. data/docs/LineUserId.md +13 -0
  63. data/docs/ListWrapperForecastSourceDayPointer.md +13 -0
  64. data/docs/ListWrapperShiftStartVariance.md +13 -0
  65. data/docs/ListWrapperWfmForecastModification.md +13 -0
  66. data/docs/MessageConversationNotificationMessageDetails.md +1 -0
  67. data/docs/MessageConversationNotificationMessageMedia.md +3 -0
  68. data/docs/MessageConversationNotificationMessageSticker.md +14 -0
  69. data/docs/MessageConversationNotificationMessages.md +1 -0
  70. data/docs/MessageMediaPolicyConditions.md +1 -0
  71. data/docs/OrgUser.md +1 -0
  72. data/docs/OutboundApi.md +70 -0
  73. data/docs/PartialUploadResponse.md +13 -0
  74. data/docs/PatchUser.md +0 -1
  75. data/docs/PublishedSurveyFormReference.md +16 -0
  76. data/docs/QueryDivision.md +12 -0
  77. data/docs/QueueMediaAssociation.md +16 -0
  78. data/docs/QueueReference.md +14 -0
  79. data/docs/RecordingMessagingMessage.md +1 -0
  80. data/docs/RouteGroup.md +18 -0
  81. data/docs/RouteGroupAttributes.md +16 -0
  82. data/docs/RouteGroupList.md +14 -0
  83. data/docs/RoutingApi.md +8 -8
  84. data/docs/RoutingSkillReference.md +14 -0
  85. data/docs/ScheduleGenerationWarning.md +20 -0
  86. data/docs/SchedulingRunListResponse.md +13 -0
  87. data/docs/SchedulingRunResponse.md +22 -0
  88. data/docs/ServiceGoalGroup.md +18 -0
  89. data/docs/ServiceGoalGroupGoals.md +14 -0
  90. data/docs/ServiceGoalGroupList.md +14 -0
  91. data/docs/SetWrapperDayOfWeek.md +13 -0
  92. data/docs/ShiftStartVariance.md +14 -0
  93. data/docs/ShortTermForecast.md +22 -0
  94. data/docs/ShortTermForecastListItemResponse.md +18 -0
  95. data/docs/ShortTermForecastListResponse.md +13 -0
  96. data/docs/ShortTermForecastReference.md +16 -0
  97. data/docs/ShortTermForecastResponse.md +15 -0
  98. data/docs/SurveyAssignment.md +3 -1
  99. data/docs/SurveyForm.md +1 -0
  100. data/docs/TimeOffRequestEntityList.md +13 -0
  101. data/docs/TimeOffRequestLookup.md +15 -0
  102. data/docs/TimeOffRequestLookupList.md +13 -0
  103. data/docs/TimeOffRequestQueryBody.md +15 -0
  104. data/docs/TrustUser.md +1 -0
  105. data/docs/TrusteeAuthorization.md +13 -0
  106. data/docs/Trustor.md +1 -0
  107. data/docs/UpdateActivityCodeRequest.md +19 -0
  108. data/docs/UpdateWeekScheduleRequest.md +18 -0
  109. data/docs/User.md +1 -0
  110. data/docs/UserMe.md +1 -0
  111. data/docs/UserScheduleAdherenceUpdateNotificationDateTime.md +1 -1
  112. data/docs/UserSchedulesPartialUploadRequest.md +13 -0
  113. data/docs/UsersApi.md +5 -6
  114. data/docs/ViewFilter.md +4 -0
  115. data/docs/WeekSchedule.md +23 -0
  116. data/docs/WeekScheduleGenerationResult.md +16 -0
  117. data/docs/WeekScheduleListItemResponse.md +20 -0
  118. data/docs/WeekScheduleListResponse.md +13 -0
  119. data/docs/WeekScheduleResponse.md +14 -0
  120. data/docs/WfmAgent.md +22 -0
  121. data/docs/WfmAverageSpeedOfAnswer.md +14 -0
  122. data/docs/WfmForecastModification.md +20 -0
  123. data/docs/WfmForecastModificationAttributes.md +16 -0
  124. data/docs/WfmForecastModificationIntervalOffsetValue.md +14 -0
  125. data/docs/WfmHistoricalAdherenceQuery.md +1 -1
  126. data/docs/WfmHistoricalAdherenceQueryForUsers.md +17 -0
  127. data/docs/WfmServiceLevel.md +15 -0
  128. data/docs/WfmTimeZone.md +13 -0
  129. data/docs/WorkPlan.md +29 -0
  130. data/docs/WorkPlanActivity.md +25 -0
  131. data/docs/WorkPlanListItemResponse.md +21 -0
  132. data/docs/WorkPlanListResponse.md +13 -0
  133. data/docs/WorkPlanReference.md +13 -0
  134. data/docs/WorkPlanShift.md +31 -0
  135. data/docs/WorkforceManagementApi.md +3557 -187
  136. data/lib/purecloudplatformclientv2.rb +96 -1
  137. data/lib/purecloudplatformclientv2/api/outbound_api.rb +83 -0
  138. data/lib/purecloudplatformclientv2/api/routing_api.rb +8 -8
  139. data/lib/purecloudplatformclientv2/api/users_api.rb +8 -6
  140. data/lib/purecloudplatformclientv2/api/workforce_management_api.rb +3993 -288
  141. data/lib/purecloudplatformclientv2/api_client.rb +1 -1
  142. data/lib/purecloudplatformclientv2/models/agent_time_off_request_patch.rb +268 -0
  143. data/lib/purecloudplatformclientv2/models/aggregate_metric_data.rb +2 -2
  144. data/lib/purecloudplatformclientv2/models/analytics_query_predicate.rb +2 -2
  145. data/lib/purecloudplatformclientv2/models/asg_info_response.rb +2 -2
  146. data/lib/purecloudplatformclientv2/models/async_week_schedule_response.rb +294 -0
  147. data/lib/purecloudplatformclientv2/models/call_media_policy_conditions.rb +28 -1
  148. data/lib/purecloudplatformclientv2/models/campaign_notification.rb +26 -1
  149. data/lib/purecloudplatformclientv2/models/chat_media_policy_conditions.rb +28 -1
  150. data/lib/purecloudplatformclientv2/models/conversation_notification_media.rb +79 -4
  151. data/lib/purecloudplatformclientv2/models/conversation_notification_message.rb +2 -2
  152. data/lib/purecloudplatformclientv2/models/conversation_notification_message_details.rb +31 -4
  153. data/lib/purecloudplatformclientv2/models/conversation_notification_message_media.rb +79 -4
  154. data/lib/purecloudplatformclientv2/models/conversation_notification_message_sticker.rb +226 -0
  155. data/lib/purecloudplatformclientv2/models/conversation_notification_messages.rb +31 -4
  156. data/lib/purecloudplatformclientv2/models/conversation_notification_messages_1.rb +2 -2
  157. data/lib/purecloudplatformclientv2/models/conversation_notification_stickers.rb +226 -0
  158. data/lib/purecloudplatformclientv2/models/copy_short_term_forecast_request.rb +239 -0
  159. data/lib/purecloudplatformclientv2/models/copy_week_schedule_request.rb +238 -0
  160. data/lib/purecloudplatformclientv2/models/copy_work_plan.rb +208 -0
  161. data/lib/purecloudplatformclientv2/models/create_admin_time_off_request.rb +398 -0
  162. data/lib/purecloudplatformclientv2/models/create_agent_time_off_request.rb +320 -0
  163. data/lib/purecloudplatformclientv2/models/create_asg_request.rb +1 -1
  164. data/lib/purecloudplatformclientv2/models/create_management_unit_api_request.rb +336 -0
  165. data/lib/purecloudplatformclientv2/models/create_management_unit_settings.rb +281 -0
  166. data/lib/purecloudplatformclientv2/models/create_queue_media_association_request.rb +231 -0
  167. data/lib/purecloudplatformclientv2/models/create_service_goal_group_request.rb +262 -0
  168. data/lib/purecloudplatformclientv2/models/create_work_plan.rb +550 -0
  169. data/lib/purecloudplatformclientv2/models/create_work_plan_activity.rb +463 -0
  170. data/lib/purecloudplatformclientv2/models/create_work_plan_shift.rb +626 -0
  171. data/lib/purecloudplatformclientv2/models/current_user_schedule_request_body.rb +239 -0
  172. data/lib/purecloudplatformclientv2/models/data_export_notification_notification.rb +2 -2
  173. data/lib/purecloudplatformclientv2/models/date_range.rb +228 -0
  174. data/lib/purecloudplatformclientv2/models/deletable_user_reference.rb +255 -0
  175. data/lib/purecloudplatformclientv2/models/email_media_policy_conditions.rb +28 -1
  176. data/lib/purecloudplatformclientv2/models/external_contact.rb +52 -2
  177. data/lib/purecloudplatformclientv2/models/external_organization.rb +1 -1
  178. data/lib/purecloudplatformclientv2/models/facebook_id.rb +231 -0
  179. data/lib/purecloudplatformclientv2/models/facebook_scoped_id.rb +203 -0
  180. data/lib/purecloudplatformclientv2/models/flow_notification_notification_architect_operation.rb +2 -2
  181. data/lib/purecloudplatformclientv2/models/flow_outcome_notification_notification.rb +276 -0
  182. data/lib/purecloudplatformclientv2/models/flow_outcome_notification_notification_architect_operation.rb +431 -0
  183. data/lib/purecloudplatformclientv2/models/flow_outcome_notification_notification_error_detail.rb +276 -0
  184. data/lib/purecloudplatformclientv2/models/flow_outcome_notification_notification_error_message_params.rb +203 -0
  185. data/lib/purecloudplatformclientv2/models/flow_outcome_notification_notification_home_organization.rb +251 -0
  186. data/lib/purecloudplatformclientv2/models/flow_outcome_notification_notification_user.rb +251 -0
  187. data/lib/purecloudplatformclientv2/models/forecast_generation_result.rb +204 -0
  188. data/lib/purecloudplatformclientv2/models/forecast_generation_route_group_result.rb +230 -0
  189. data/lib/purecloudplatformclientv2/models/forecast_result_response.rb +228 -0
  190. data/lib/purecloudplatformclientv2/models/forecast_source_day_pointer.rb +321 -0
  191. data/lib/purecloudplatformclientv2/models/forecast_time_series_result.rb +256 -0
  192. data/lib/purecloudplatformclientv2/models/generate_short_term_forecast_request.rb +207 -0
  193. data/lib/purecloudplatformclientv2/models/generate_short_term_forecast_response.rb +294 -0
  194. data/lib/purecloudplatformclientv2/models/generate_week_schedule_request.rb +239 -0
  195. data/lib/purecloudplatformclientv2/models/generate_week_schedule_response.rb +268 -0
  196. data/lib/purecloudplatformclientv2/models/headcount_forecast_response.rb +233 -0
  197. data/lib/purecloudplatformclientv2/models/headcount_interval_response.rb +229 -0
  198. data/lib/purecloudplatformclientv2/models/import_short_term_forecast_request.rb +293 -0
  199. data/lib/purecloudplatformclientv2/models/import_week_schedule_request.rb +316 -0
  200. data/lib/purecloudplatformclientv2/models/intraday_data_update_notification_date_time.rb +17 -17
  201. data/lib/purecloudplatformclientv2/models/intraday_data_update_notification_start_date.rb +17 -17
  202. data/lib/purecloudplatformclientv2/models/json_node.rb +17 -17
  203. data/lib/purecloudplatformclientv2/models/language_reference.rb +228 -0
  204. data/lib/purecloudplatformclientv2/models/line_id.rb +231 -0
  205. data/lib/purecloudplatformclientv2/models/line_user_id.rb +203 -0
  206. data/lib/purecloudplatformclientv2/models/list_wrapper_forecast_source_day_pointer.rb +203 -0
  207. data/lib/purecloudplatformclientv2/models/list_wrapper_shift_start_variance.rb +203 -0
  208. data/lib/purecloudplatformclientv2/models/list_wrapper_wfm_forecast_modification.rb +203 -0
  209. data/lib/purecloudplatformclientv2/models/message_conversation_notification_message_details.rb +31 -4
  210. data/lib/purecloudplatformclientv2/models/message_conversation_notification_message_media.rb +79 -4
  211. data/lib/purecloudplatformclientv2/models/message_conversation_notification_message_media_participant.rb +2 -2
  212. data/lib/purecloudplatformclientv2/models/message_conversation_notification_message_sticker.rb +226 -0
  213. data/lib/purecloudplatformclientv2/models/message_conversation_notification_messages.rb +31 -4
  214. data/lib/purecloudplatformclientv2/models/message_conversation_notification_participants.rb +2 -2
  215. data/lib/purecloudplatformclientv2/models/message_media_policy_conditions.rb +28 -1
  216. data/lib/purecloudplatformclientv2/models/org_user.rb +27 -1
  217. data/lib/purecloudplatformclientv2/models/partial_upload_response.rb +202 -0
  218. data/lib/purecloudplatformclientv2/models/patch_user.rb +1 -26
  219. data/lib/purecloudplatformclientv2/models/prompt_notification_notification_architect_operation.rb +2 -2
  220. data/lib/purecloudplatformclientv2/models/prompt_notification_notification_current_operation.rb +2 -2
  221. data/lib/purecloudplatformclientv2/models/{survey_form_uri_reference.rb → published_survey_form_reference.rb} +16 -14
  222. data/lib/purecloudplatformclientv2/models/query_division.rb +176 -0
  223. data/lib/purecloudplatformclientv2/models/queue_media_association.rb +283 -0
  224. data/lib/purecloudplatformclientv2/models/queue_reference.rb +228 -0
  225. data/lib/purecloudplatformclientv2/models/recording_messaging_message.rb +26 -1
  226. data/lib/purecloudplatformclientv2/models/reporting_export_job_request.rb +2 -2
  227. data/lib/purecloudplatformclientv2/models/reporting_export_job_response.rb +2 -2
  228. data/lib/purecloudplatformclientv2/models/route_group.rb +363 -0
  229. data/lib/purecloudplatformclientv2/models/route_group_attributes.rb +307 -0
  230. data/lib/purecloudplatformclientv2/models/route_group_list.rb +235 -0
  231. data/lib/purecloudplatformclientv2/models/routing_skill_reference.rb +228 -0
  232. data/lib/purecloudplatformclientv2/models/schedule_generation_warning.rb +389 -0
  233. data/lib/purecloudplatformclientv2/models/scheduling_run_list_response.rb +203 -0
  234. data/lib/purecloudplatformclientv2/models/scheduling_run_response.rb +451 -0
  235. data/lib/purecloudplatformclientv2/models/service_goal_group.rb +339 -0
  236. data/lib/purecloudplatformclientv2/models/service_goal_group_goals.rb +239 -0
  237. data/lib/purecloudplatformclientv2/models/service_goal_group_list.rb +230 -0
  238. data/lib/purecloudplatformclientv2/models/set_wrapper_day_of_week.rb +203 -0
  239. data/lib/purecloudplatformclientv2/models/shift_start_variance.rb +241 -0
  240. data/lib/purecloudplatformclientv2/models/short_term_forecast.rb +466 -0
  241. data/lib/purecloudplatformclientv2/models/short_term_forecast_list_item_response.rb +362 -0
  242. data/lib/purecloudplatformclientv2/models/short_term_forecast_list_response.rb +203 -0
  243. data/lib/purecloudplatformclientv2/models/short_term_forecast_reference.rb +291 -0
  244. data/lib/purecloudplatformclientv2/models/short_term_forecast_response.rb +268 -0
  245. data/lib/purecloudplatformclientv2/models/survey_assignment.rb +62 -5
  246. data/lib/purecloudplatformclientv2/models/survey_form.rb +32 -1
  247. data/lib/purecloudplatformclientv2/models/time_off_request_entity_list.rb +203 -0
  248. data/lib/purecloudplatformclientv2/models/time_off_request_lookup.rb +264 -0
  249. data/lib/purecloudplatformclientv2/models/time_off_request_lookup_list.rb +209 -0
  250. data/lib/purecloudplatformclientv2/models/time_off_request_query_body.rb +258 -0
  251. data/lib/purecloudplatformclientv2/models/trust_user.rb +27 -1
  252. data/lib/purecloudplatformclientv2/models/trustee_authorization.rb +204 -0
  253. data/lib/purecloudplatformclientv2/models/trustor.rb +27 -1
  254. data/lib/purecloudplatformclientv2/models/update_activity_code_request.rb +378 -0
  255. data/lib/purecloudplatformclientv2/models/update_week_schedule_request.rb +346 -0
  256. data/lib/purecloudplatformclientv2/models/user.rb +27 -1
  257. data/lib/purecloudplatformclientv2/models/user_me.rb +27 -1
  258. data/lib/purecloudplatformclientv2/models/user_schedule_adherence_update_notification_date_time.rb +17 -17
  259. data/lib/purecloudplatformclientv2/models/user_schedules_partial_upload_request.rb +210 -0
  260. data/lib/purecloudplatformclientv2/models/view_filter.rb +112 -4
  261. data/lib/purecloudplatformclientv2/models/week_schedule.rb +465 -0
  262. data/lib/purecloudplatformclientv2/models/week_schedule_generation_result.rb +282 -0
  263. data/lib/purecloudplatformclientv2/models/week_schedule_list_item_response.rb +384 -0
  264. data/lib/purecloudplatformclientv2/models/week_schedule_list_response.rb +204 -0
  265. data/lib/purecloudplatformclientv2/models/week_schedule_response.rb +229 -0
  266. data/lib/purecloudplatformclientv2/models/wfm_agent.rb +443 -0
  267. data/lib/purecloudplatformclientv2/models/wfm_average_speed_of_answer.rb +234 -0
  268. data/lib/purecloudplatformclientv2/models/wfm_forecast_modification.rb +435 -0
  269. data/lib/purecloudplatformclientv2/models/wfm_forecast_modification_attributes.rb +288 -0
  270. data/lib/purecloudplatformclientv2/models/wfm_forecast_modification_interval_offset_value.rb +239 -0
  271. data/lib/purecloudplatformclientv2/models/wfm_historical_adherence_query.rb +1 -1
  272. data/lib/purecloudplatformclientv2/models/wfm_historical_adherence_query_for_users.rb +324 -0
  273. data/lib/purecloudplatformclientv2/models/wfm_service_level.rb +260 -0
  274. data/lib/purecloudplatformclientv2/models/wfm_time_zone.rb +203 -0
  275. data/lib/purecloudplatformclientv2/models/work_plan.rb +627 -0
  276. data/lib/purecloudplatformclientv2/models/work_plan_activity.rb +515 -0
  277. data/lib/purecloudplatformclientv2/models/work_plan_list_item_response.rb +410 -0
  278. data/lib/purecloudplatformclientv2/models/work_plan_list_response.rb +203 -0
  279. data/lib/purecloudplatformclientv2/models/work_plan_reference.rb +207 -0
  280. data/lib/purecloudplatformclientv2/models/work_plan_shift.rb +678 -0
  281. data/lib/purecloudplatformclientv2/version.rb +1 -1
  282. metadata +194 -4
@@ -0,0 +1,626 @@
1
+ =begin
2
+ PureCloud Platform API
3
+
4
+ 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.
5
+
6
+ OpenAPI spec version: v2
7
+ Contact: DeveloperEvangelists@genesys.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ License: ININ
11
+ http://www.inin.com
12
+
13
+ Terms of Service: https://developer.mypurecloud.com/tos
14
+
15
+ =end
16
+
17
+ require 'date'
18
+
19
+ module PureCloud
20
+ # Shift in a work plan
21
+ class CreateWorkPlanShift
22
+ # Name of the shift
23
+ attr_accessor :name
24
+
25
+ # Days of the week applicable for this shift
26
+ attr_accessor :days
27
+
28
+ # Whether the start time of the shift is flexible
29
+ attr_accessor :flexible_start_time
30
+
31
+ # Exact start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == false
32
+ attr_accessor :exact_start_time_minutes_from_midnight
33
+
34
+ # Earliest start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == true
35
+ attr_accessor :earliest_start_time_minutes_from_midnight
36
+
37
+ # Latest start time of the shift defined as offset minutes from midnight. Used if flexibleStartTime == true
38
+ attr_accessor :latest_start_time_minutes_from_midnight
39
+
40
+ # Whether the latest stop time constraint for the shift is enabled
41
+ attr_accessor :constrain_stop_time
42
+
43
+ # Latest stop time of the shift defined as offset minutes from midnight. Used if constrainStopTime == true
44
+ attr_accessor :latest_stop_time_minutes_from_midnight
45
+
46
+ # Increment in offset minutes that would contribute to different possible start times for the shift. Used if flexibleStartTime == true
47
+ attr_accessor :start_increment_minutes
48
+
49
+ # Whether the paid time setting for the shift is flexible
50
+ attr_accessor :flexible_paid_time
51
+
52
+ # Exact paid time in minutes configured for the shift. Used if flexiblePaidTime == false
53
+ attr_accessor :exact_paid_time_minutes
54
+
55
+ # Minimum paid time in minutes configured for the shift. Used if flexiblePaidTime == true
56
+ attr_accessor :minimum_paid_time_minutes
57
+
58
+ # Maximum paid time in minutes configured for the shift. Used if flexiblePaidTime == true
59
+ attr_accessor :maximum_paid_time_minutes
60
+
61
+ # Whether the contiguous time constraint for the shift is enabled
62
+ attr_accessor :constrain_contiguous_work_time
63
+
64
+ # Minimum contiguous time in minutes configured for the shift. Used if constrainContiguousWorkTime == true
65
+ attr_accessor :minimum_contiguous_work_time_minutes
66
+
67
+ # Maximum contiguous time in minutes configured for the shift. Used if constrainContiguousWorkTime == true
68
+ attr_accessor :maximum_contiguous_work_time_minutes
69
+
70
+ # Activities configured for this shift
71
+ attr_accessor :activities
72
+
73
+ # Attribute mapping from ruby-style variable name to JSON key.
74
+ def self.attribute_map
75
+ {
76
+
77
+ :'name' => :'name',
78
+
79
+ :'days' => :'days',
80
+
81
+ :'flexible_start_time' => :'flexibleStartTime',
82
+
83
+ :'exact_start_time_minutes_from_midnight' => :'exactStartTimeMinutesFromMidnight',
84
+
85
+ :'earliest_start_time_minutes_from_midnight' => :'earliestStartTimeMinutesFromMidnight',
86
+
87
+ :'latest_start_time_minutes_from_midnight' => :'latestStartTimeMinutesFromMidnight',
88
+
89
+ :'constrain_stop_time' => :'constrainStopTime',
90
+
91
+ :'latest_stop_time_minutes_from_midnight' => :'latestStopTimeMinutesFromMidnight',
92
+
93
+ :'start_increment_minutes' => :'startIncrementMinutes',
94
+
95
+ :'flexible_paid_time' => :'flexiblePaidTime',
96
+
97
+ :'exact_paid_time_minutes' => :'exactPaidTimeMinutes',
98
+
99
+ :'minimum_paid_time_minutes' => :'minimumPaidTimeMinutes',
100
+
101
+ :'maximum_paid_time_minutes' => :'maximumPaidTimeMinutes',
102
+
103
+ :'constrain_contiguous_work_time' => :'constrainContiguousWorkTime',
104
+
105
+ :'minimum_contiguous_work_time_minutes' => :'minimumContiguousWorkTimeMinutes',
106
+
107
+ :'maximum_contiguous_work_time_minutes' => :'maximumContiguousWorkTimeMinutes',
108
+
109
+ :'activities' => :'activities'
110
+
111
+ }
112
+ end
113
+
114
+ # Attribute type mapping.
115
+ def self.swagger_types
116
+ {
117
+
118
+ :'name' => :'String',
119
+
120
+ :'days' => :'SetWrapperDayOfWeek',
121
+
122
+ :'flexible_start_time' => :'BOOLEAN',
123
+
124
+ :'exact_start_time_minutes_from_midnight' => :'Integer',
125
+
126
+ :'earliest_start_time_minutes_from_midnight' => :'Integer',
127
+
128
+ :'latest_start_time_minutes_from_midnight' => :'Integer',
129
+
130
+ :'constrain_stop_time' => :'BOOLEAN',
131
+
132
+ :'latest_stop_time_minutes_from_midnight' => :'Integer',
133
+
134
+ :'start_increment_minutes' => :'Integer',
135
+
136
+ :'flexible_paid_time' => :'BOOLEAN',
137
+
138
+ :'exact_paid_time_minutes' => :'Integer',
139
+
140
+ :'minimum_paid_time_minutes' => :'Integer',
141
+
142
+ :'maximum_paid_time_minutes' => :'Integer',
143
+
144
+ :'constrain_contiguous_work_time' => :'BOOLEAN',
145
+
146
+ :'minimum_contiguous_work_time_minutes' => :'Integer',
147
+
148
+ :'maximum_contiguous_work_time_minutes' => :'Integer',
149
+
150
+ :'activities' => :'Array<CreateWorkPlanActivity>'
151
+
152
+ }
153
+ end
154
+
155
+ # Initializes the object
156
+ # @param [Hash] attributes Model attributes in the form of hash
157
+ def initialize(attributes = {})
158
+ return unless attributes.is_a?(Hash)
159
+
160
+ # convert string to symbol for hash key
161
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
162
+
163
+
164
+ if attributes.has_key?(:'name')
165
+
166
+
167
+ self.name = attributes[:'name']
168
+
169
+
170
+ end
171
+
172
+
173
+ if attributes.has_key?(:'days')
174
+
175
+
176
+ self.days = attributes[:'days']
177
+
178
+
179
+ end
180
+
181
+
182
+ if attributes.has_key?(:'flexibleStartTime')
183
+
184
+
185
+ self.flexible_start_time = attributes[:'flexibleStartTime']
186
+
187
+
188
+ end
189
+
190
+
191
+ if attributes.has_key?(:'exactStartTimeMinutesFromMidnight')
192
+
193
+
194
+ self.exact_start_time_minutes_from_midnight = attributes[:'exactStartTimeMinutesFromMidnight']
195
+
196
+
197
+ end
198
+
199
+
200
+ if attributes.has_key?(:'earliestStartTimeMinutesFromMidnight')
201
+
202
+
203
+ self.earliest_start_time_minutes_from_midnight = attributes[:'earliestStartTimeMinutesFromMidnight']
204
+
205
+
206
+ end
207
+
208
+
209
+ if attributes.has_key?(:'latestStartTimeMinutesFromMidnight')
210
+
211
+
212
+ self.latest_start_time_minutes_from_midnight = attributes[:'latestStartTimeMinutesFromMidnight']
213
+
214
+
215
+ end
216
+
217
+
218
+ if attributes.has_key?(:'constrainStopTime')
219
+
220
+
221
+ self.constrain_stop_time = attributes[:'constrainStopTime']
222
+
223
+
224
+ end
225
+
226
+
227
+ if attributes.has_key?(:'latestStopTimeMinutesFromMidnight')
228
+
229
+
230
+ self.latest_stop_time_minutes_from_midnight = attributes[:'latestStopTimeMinutesFromMidnight']
231
+
232
+
233
+ end
234
+
235
+
236
+ if attributes.has_key?(:'startIncrementMinutes')
237
+
238
+
239
+ self.start_increment_minutes = attributes[:'startIncrementMinutes']
240
+
241
+
242
+ end
243
+
244
+
245
+ if attributes.has_key?(:'flexiblePaidTime')
246
+
247
+
248
+ self.flexible_paid_time = attributes[:'flexiblePaidTime']
249
+
250
+
251
+ end
252
+
253
+
254
+ if attributes.has_key?(:'exactPaidTimeMinutes')
255
+
256
+
257
+ self.exact_paid_time_minutes = attributes[:'exactPaidTimeMinutes']
258
+
259
+
260
+ end
261
+
262
+
263
+ if attributes.has_key?(:'minimumPaidTimeMinutes')
264
+
265
+
266
+ self.minimum_paid_time_minutes = attributes[:'minimumPaidTimeMinutes']
267
+
268
+
269
+ end
270
+
271
+
272
+ if attributes.has_key?(:'maximumPaidTimeMinutes')
273
+
274
+
275
+ self.maximum_paid_time_minutes = attributes[:'maximumPaidTimeMinutes']
276
+
277
+
278
+ end
279
+
280
+
281
+ if attributes.has_key?(:'constrainContiguousWorkTime')
282
+
283
+
284
+ self.constrain_contiguous_work_time = attributes[:'constrainContiguousWorkTime']
285
+
286
+
287
+ end
288
+
289
+
290
+ if attributes.has_key?(:'minimumContiguousWorkTimeMinutes')
291
+
292
+
293
+ self.minimum_contiguous_work_time_minutes = attributes[:'minimumContiguousWorkTimeMinutes']
294
+
295
+
296
+ end
297
+
298
+
299
+ if attributes.has_key?(:'maximumContiguousWorkTimeMinutes')
300
+
301
+
302
+ self.maximum_contiguous_work_time_minutes = attributes[:'maximumContiguousWorkTimeMinutes']
303
+
304
+
305
+ end
306
+
307
+
308
+ if attributes.has_key?(:'activities')
309
+
310
+ if (value = attributes[:'activities']).is_a?(Array)
311
+ self.activities = value
312
+ end
313
+
314
+
315
+
316
+ end
317
+
318
+
319
+ end
320
+
321
+ # Show invalid properties with the reasons. Usually used together with valid?
322
+ # @return Array for valid properies with the reasons
323
+ def list_invalid_properties
324
+ invalid_properties = Array.new
325
+
326
+
327
+ return invalid_properties
328
+ end
329
+
330
+ # Check to see if the all the properties in the model are valid
331
+ # @return true if the model is valid
332
+ def valid?
333
+
334
+
335
+ if @name.nil?
336
+ return false
337
+ end
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+ end
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+ # Checks equality by comparing each attribute.
496
+ # @param [Object] Object to be compared
497
+ def ==(o)
498
+ return true if self.equal?(o)
499
+ self.class == o.class &&
500
+ name == o.name &&
501
+ days == o.days &&
502
+ flexible_start_time == o.flexible_start_time &&
503
+ exact_start_time_minutes_from_midnight == o.exact_start_time_minutes_from_midnight &&
504
+ earliest_start_time_minutes_from_midnight == o.earliest_start_time_minutes_from_midnight &&
505
+ latest_start_time_minutes_from_midnight == o.latest_start_time_minutes_from_midnight &&
506
+ constrain_stop_time == o.constrain_stop_time &&
507
+ latest_stop_time_minutes_from_midnight == o.latest_stop_time_minutes_from_midnight &&
508
+ start_increment_minutes == o.start_increment_minutes &&
509
+ flexible_paid_time == o.flexible_paid_time &&
510
+ exact_paid_time_minutes == o.exact_paid_time_minutes &&
511
+ minimum_paid_time_minutes == o.minimum_paid_time_minutes &&
512
+ maximum_paid_time_minutes == o.maximum_paid_time_minutes &&
513
+ constrain_contiguous_work_time == o.constrain_contiguous_work_time &&
514
+ minimum_contiguous_work_time_minutes == o.minimum_contiguous_work_time_minutes &&
515
+ maximum_contiguous_work_time_minutes == o.maximum_contiguous_work_time_minutes &&
516
+ activities == o.activities
517
+ end
518
+
519
+ # @see the `==` method
520
+ # @param [Object] Object to be compared
521
+ def eql?(o)
522
+ self == o
523
+ end
524
+
525
+ # Calculates hash code according to all attributes.
526
+ # @return [Fixnum] Hash code
527
+ def hash
528
+ [name, days, flexible_start_time, exact_start_time_minutes_from_midnight, earliest_start_time_minutes_from_midnight, latest_start_time_minutes_from_midnight, constrain_stop_time, latest_stop_time_minutes_from_midnight, start_increment_minutes, flexible_paid_time, exact_paid_time_minutes, minimum_paid_time_minutes, maximum_paid_time_minutes, constrain_contiguous_work_time, minimum_contiguous_work_time_minutes, maximum_contiguous_work_time_minutes, activities].hash
529
+ end
530
+
531
+ # build the object from hash
532
+ def build_from_hash(attributes)
533
+ return nil unless attributes.is_a?(Hash)
534
+ self.class.swagger_types.each_pair do |key, type|
535
+ if type =~ /^Array<(.*)>/i
536
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
537
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
538
+ else
539
+ #TODO show warning in debug mode
540
+ end
541
+ elsif !attributes[self.class.attribute_map[key]].nil?
542
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
543
+ else
544
+ # data not found in attributes(hash), not an issue as the data can be optional
545
+ end
546
+ end
547
+
548
+ self
549
+ end
550
+
551
+ def _deserialize(type, value)
552
+ case type.to_sym
553
+ when :DateTime
554
+ DateTime.parse(value)
555
+ when :Date
556
+ Date.parse(value)
557
+ when :String
558
+ value.to_s
559
+ when :Integer
560
+ value.to_i
561
+ when :Float
562
+ value.to_f
563
+ when :BOOLEAN
564
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
565
+ true
566
+ else
567
+ false
568
+ end
569
+ when :Object
570
+ # generic object (usually a Hash), return directly
571
+ value
572
+ when /\AArray<(?<inner_type>.+)>\z/
573
+ inner_type = Regexp.last_match[:inner_type]
574
+ value.map { |v| _deserialize(inner_type, v) }
575
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
576
+ k_type = Regexp.last_match[:k_type]
577
+ v_type = Regexp.last_match[:v_type]
578
+ {}.tap do |hash|
579
+ value.each do |k, v|
580
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
581
+ end
582
+ end
583
+ else # model
584
+ _model = Object.const_get("PureCloud").const_get(type).new
585
+ _model.build_from_hash(value)
586
+ end
587
+ end
588
+
589
+ def to_s
590
+ to_hash.to_s
591
+ end
592
+
593
+ # to_body is an alias to to_body (backward compatibility))
594
+ def to_body
595
+ to_hash
596
+ end
597
+
598
+ # return the object in the form of hash
599
+ def to_hash
600
+ hash = {}
601
+ self.class.attribute_map.each_pair do |attr, param|
602
+ value = self.send(attr)
603
+ next if value.nil?
604
+ hash[param] = _to_hash(value)
605
+ end
606
+ hash
607
+ end
608
+
609
+ # Method to output non-array value in the form of hash
610
+ # For object, use to_hash. Otherwise, just return the value
611
+ def _to_hash(value)
612
+ if value.is_a?(Array)
613
+ value.compact.map{ |v| _to_hash(v) }
614
+ elsif value.is_a?(Hash)
615
+ {}.tap do |hash|
616
+ value.each { |k, v| hash[k] = _to_hash(v) }
617
+ end
618
+ elsif value.respond_to? :to_hash
619
+ value.to_hash
620
+ else
621
+ value
622
+ end
623
+ end
624
+
625
+ end
626
+ end