/// <summary>
        /// Gets Contact either through the AgentUuid or MoxiWorksAgentId.
        /// </summary>
        /// <param name="agentId">
        /// Must include either:
        /// AgentUuid
        /// This is the Moxi Works Platform ID of the agent which an ActionLog entry is associated
        /// with. This will be an RFC 4122 compliant UUID.
        /// agent_uuid or moxi_works_agent_id is required and must reference a
        /// valid Moxi Works Agent ID for your ActionLog request to be accepted.
        ///
        /// MoxiWorksAgentId
        /// This is the Moxi Works Platform ID of the agent which an ActionLog entry is associated
        /// with. This will be a string that may take the form of an email address,
        /// or a unique identification string. agent_uuid or moxi_works_agent_id is required
        /// and must reference a valid Moxi Works Agent ID for your ActionLog request to be accepted.
        /// Agent ID for your ActionLog request to be accepted.
        /// </param>
        /// <param name="emailAddress">An email address associated with the Contact record. May be primary or secondary.</param>
        /// <param name="contactName">The full name of the contact which you are trying to find the Contact record for.</param>
        /// <param name="phoneNumber">A phone number associated with the Contact record. May be primary or secondary.</param>
        /// <param name="updatedSince">Paged responses of all Contact objects updated after this Unix timestamp will be returned in the response.</param>
        /// <param name="pageNumber">Page of Contact records to return. Use if total_pages indicates that there is more than one page of data available.</param>
        /// <returns>response of contacts</returns>
        public async Task <Response <ContactResults> > GetContactsUpdatedSinceAsync(string agentId, AgentIdType agentIdType,
                                                                                    string emailAddress = null,
                                                                                    string contactName  = null, string phoneNumber = null, DateTime?updatedSince = null, int pageNumber = 1)
        {
            var builder = new UriBuilder("contacts");

            builder.AddQueryPerameterAgentId(agentId, agentIdType)
            .AddQueryParameter("email_address", emailAddress)
            .AddQueryParameter("contact_name", contactName)
            .AddQueryParameter("phone_number", phoneNumber)
            .AddQueryParameter("page_number", pageNumber);

            if (updatedSince != null)
            {
                builder.AddQueryParameter("updated_since", updatedSince.Value);
            }

            return(await Client.GetRequestAsync <ContactResults>(builder.GetUrl()));
        }