/// <summary>
        /// create
        /// </summary>
        /// <param name="friendlyName"> Human readable description of this workspace </param>
        /// <param name="eventCallbackUrl"> If provided, the Workspace will publish events to this URL. </param>
        /// <param name="eventsFilter"> Use this parameter to receive webhooks on EventCallbackUrl for specific events on a
        ///                    workspace. </param>
        /// <param name="multiTaskEnabled"> Multi tasking allows workers to handle multiple tasks simultaneously. </param>
        /// <param name="template"> One of the available template names. </param>
        /// <param name="prioritizeQueueOrder"> Use this parameter to configure whether to prioritize LIFO or FIFO when workers
        ///                            are receiving Tasks from combination of LIFO and FIFO TaskQueues. </param>
        /// <param name="client"> Client to make requests to Twilio </param>
        /// <returns> A single instance of Workspace </returns>
        public static WorkspaceResource Create(string friendlyName,
                                               Uri eventCallbackUrl  = null,
                                               string eventsFilter   = null,
                                               bool?multiTaskEnabled = null,
                                               string template       = null,
                                               WorkspaceResource.QueueOrderEnum prioritizeQueueOrder = null,
                                               ITwilioRestClient client = null)
        {
            var options = new CreateWorkspaceOptions(friendlyName)
            {
                EventCallbackUrl = eventCallbackUrl, EventsFilter = eventsFilter, MultiTaskEnabled = multiTaskEnabled, Template = template, PrioritizeQueueOrder = prioritizeQueueOrder
            };

            return(Create(options, client));
        }
        /// <summary>
        /// update
        /// </summary>
        /// <param name="pathSid"> The sid </param>
        /// <param name="defaultActivitySid"> The ID of the Activity that will be used when new Workers are created in this
        ///                          Workspace. </param>
        /// <param name="eventCallbackUrl"> The Workspace will publish events to this URL. </param>
        /// <param name="eventsFilter"> Use this parameter to receive webhooks on EventCallbackUrl for specific events on a
        ///                    workspace. </param>
        /// <param name="friendlyName"> Human readable description of this workspace </param>
        /// <param name="multiTaskEnabled"> Enable or Disable Multitasking by passing either true or False with the POST
        ///                        request. </param>
        /// <param name="timeoutActivitySid"> The ID of the Activity that will be assigned to a Worker when a Task reservation
        ///                          times out without a response. </param>
        /// <param name="prioritizeQueueOrder"> Use this parameter to configure whether to prioritize LIFO or FIFO when workers
        ///                            are receiving Tasks from combination of LIFO and FIFO TaskQueues. </param>
        /// <param name="client"> Client to make requests to Twilio </param>
        /// <returns> A single instance of Workspace </returns>
        public static WorkspaceResource Update(string pathSid,
                                               string defaultActivitySid = null,
                                               Uri eventCallbackUrl      = null,
                                               string eventsFilter       = null,
                                               string friendlyName       = null,
                                               bool?multiTaskEnabled     = null,
                                               string timeoutActivitySid = null,
                                               WorkspaceResource.QueueOrderEnum prioritizeQueueOrder = null,
                                               ITwilioRestClient client = null)
        {
            var options = new UpdateWorkspaceOptions(pathSid)
            {
                DefaultActivitySid = defaultActivitySid, EventCallbackUrl = eventCallbackUrl, EventsFilter = eventsFilter, FriendlyName = friendlyName, MultiTaskEnabled = multiTaskEnabled, TimeoutActivitySid = timeoutActivitySid, PrioritizeQueueOrder = prioritizeQueueOrder
            };

            return(Update(options, client));
        }