/* Generated by camel build tools - do NOT edit this file! */
package org.apache.camel.component.zendesk;

import java.util.Map;

import org.apache.camel.CamelContext;
import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
import org.apache.camel.spi.PropertyConfigurerGetter;
import org.apache.camel.spi.ConfigurerStrategy;
import org.apache.camel.spi.GeneratedPropertyConfigurer;
import org.apache.camel.util.CaseInsensitiveMap;
import org.apache.camel.component.zendesk.ZendeskEndpointConfiguration;

/**
 * Generated by camel build tools - do NOT edit this file!
 */
@SuppressWarnings("unchecked")
public class ZendeskEndpointConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {

    private static final Map<String, Object> ALL_OPTIONS;
    static {
        Map<String, Object> map = new CaseInsensitiveMap();
        map.put("Article", org.zendesk.client.v2.model.hc.Article.class);
        map.put("ArticleAttachments", org.zendesk.client.v2.model.hc.ArticleAttachments.class);
        map.put("ArticleId", java.lang.Long.class);
        map.put("ArticleId0", java.lang.Long.class);
        map.put("Attachment", org.zendesk.client.v2.model.Attachment.class);
        map.put("Attachments", java.util.List.class);
        map.put("Audit", org.zendesk.client.v2.model.Audit.class);
        map.put("AuditId", java.lang.Long.class);
        map.put("Automation", org.zendesk.client.v2.model.Automation.class);
        map.put("AutomationId", java.lang.Long.class);
        map.put("AutomationId0", java.lang.Long.class);
        map.put("Category", org.zendesk.client.v2.model.hc.Category.class);
        map.put("CategoryId", java.lang.Long.class);
        map.put("Category_id", java.lang.Long.class);
        map.put("Comment", org.zendesk.client.v2.model.Comment.class);
        map.put("CommentId", java.lang.Long.class);
        map.put("Content", byte[].class);
        map.put("ContentType", java.lang.String.class);
        map.put("Email", java.lang.String.class);
        map.put("EndTime", java.util.Date.class);
        map.put("ExternalId", java.lang.String.class);
        map.put("Field", org.zendesk.client.v2.model.Field.class);
        map.put("File", java.io.File.class);
        map.put("FileName", java.lang.String.class);
        map.put("Forum", org.zendesk.client.v2.model.Forum.class);
        map.put("Forum_id", java.lang.Long.class);
        map.put("Group", org.zendesk.client.v2.model.Group.class);
        map.put("GroupMembership", org.zendesk.client.v2.model.GroupMembership.class);
        map.put("Group_id", java.lang.Long.class);
        map.put("Group_membership_id", java.lang.Long.class);
        map.put("Id", java.lang.Long.class);
        map.put("IdArticle", java.lang.String.class);
        map.put("Identity", org.zendesk.client.v2.model.Identity.class);
        map.put("IdentityId", java.lang.Long.class);
        map.put("Ids", long[].class);
        map.put("IncludeArchived", java.lang.Boolean.class);
        map.put("Inline", java.lang.Boolean.class);
        map.put("InstallationId", java.lang.Integer.class);
        map.put("Item", org.zendesk.client.v2.model.dynamic.DynamicContentItem.class);
        map.put("ItemId", java.lang.Long.class);
        map.put("Json", java.lang.String.class);
        map.put("Labels", java.util.List.class);
        map.put("Locale", java.lang.String.class);
        map.put("Macro", org.zendesk.client.v2.model.Macro.class);
        map.put("MacroId", java.lang.Long.class);
        map.put("MacroId0", java.lang.Long.class);
        map.put("MethodName", org.apache.camel.component.zendesk.internal.ZendeskApiMethod.class);
        map.put("MonitorId", java.lang.Long.class);
        map.put("Name", java.lang.String.class);
        map.put("NewPassword", java.lang.String.class);
        map.put("NotifySubscribers", java.lang.Boolean.class);
        map.put("OauthToken", java.lang.String.class);
        map.put("OldPassword", java.lang.String.class);
        map.put("Order", org.zendesk.client.v2.model.SortOrder.class);
        map.put("Organization", org.zendesk.client.v2.model.Organization.class);
        map.put("OrganizationId", java.lang.Long.class);
        map.put("OrganizationList", java.util.List.class);
        map.put("OrganizationMembership", org.zendesk.client.v2.model.OrganizationMembership.class);
        map.put("OrganizationMembershipList", java.util.List.class);
        map.put("OrganizationMemberships", org.zendesk.client.v2.model.OrganizationMembership[].class);
        map.put("Organization_id", java.lang.Long.class);
        map.put("Organization_membership_id", java.lang.Long.class);
        map.put("Organizations", org.zendesk.client.v2.model.Organization[].class);
        map.put("Page", java.lang.Integer.class);
        map.put("Parameters", java.lang.String.class);
        map.put("Params", java.util.Map.class);
        map.put("Password", java.lang.String.class);
        map.put("PermissionGroup", org.zendesk.client.v2.model.hc.PermissionGroup.class);
        map.put("Query", java.lang.String.class);
        map.put("Request", org.zendesk.client.v2.model.Request.class);
        map.put("RequestId", java.lang.Long.class);
        map.put("Role", java.lang.String.class);
        map.put("Roles", java.lang.String[].class);
        map.put("SatisfactionRating", org.zendesk.client.v2.model.SatisfactionRating.class);
        map.put("Schedule", org.zendesk.client.v2.model.schedules.Schedule.class);
        map.put("ScheduleId", java.lang.Long.class);
        map.put("SearchTerm", java.lang.String.class);
        map.put("Section", org.zendesk.client.v2.model.hc.Section.class);
        map.put("SectionId", java.lang.Long.class);
        map.put("ServerUrl", java.lang.String.class);
        map.put("SortBy", java.lang.String.class);
        map.put("SortOrder", org.zendesk.client.v2.model.SortOrder.class);
        map.put("StartTime", java.util.Date.class);
        map.put("Status", org.zendesk.client.v2.model.JobStatus.class);
        map.put("Statuses", java.util.List.class);
        map.put("SuspendedTicket", org.zendesk.client.v2.model.SuspendedTicket.class);
        map.put("Tags", java.lang.String[].class);
        map.put("Target", org.zendesk.client.v2.model.targets.Target.class);
        map.put("TargetId", java.lang.Long.class);
        map.put("Ticket", org.zendesk.client.v2.model.Ticket.class);
        map.put("TicketForm", org.zendesk.client.v2.model.TicketForm.class);
        map.put("TicketId", java.lang.Long.class);
        map.put("TicketId0", java.lang.Long.class);
        map.put("TicketImport", org.zendesk.client.v2.model.TicketImport.class);
        map.put("TicketList", java.util.List.class);
        map.put("Tickets", org.zendesk.client.v2.model.Ticket[].class);
        map.put("Token", java.lang.String.class);
        map.put("Topic", org.zendesk.client.v2.model.Topic.class);
        map.put("Translation", org.zendesk.client.v2.model.hc.Translation.class);
        map.put("TranslationId", java.lang.Long.class);
        map.put("Trigger", org.zendesk.client.v2.model.Trigger.class);
        map.put("TriggerId", java.lang.Long.class);
        map.put("TriggerId0", java.lang.Long.class);
        map.put("TweetId", java.lang.Long.class);
        map.put("Type", java.lang.Class.class);
        map.put("UnixEpochTime", java.lang.Long.class);
        map.put("Upload", org.zendesk.client.v2.model.Attachment.Upload.class);
        map.put("User", org.zendesk.client.v2.model.User.class);
        map.put("UserId", java.lang.Long.class);
        map.put("UserId0", java.lang.Long.class);
        map.put("UserIdThatWillBeMerged", java.lang.Long.class);
        map.put("UserIdThatWillRemain", java.lang.Long.class);
        map.put("UserList", java.util.List.class);
        map.put("UserSegment", org.zendesk.client.v2.model.hc.UserSegment.class);
        map.put("User_id", java.lang.Long.class);
        map.put("Username", java.lang.String.class);
        map.put("Users", org.zendesk.client.v2.model.User[].class);
        map.put("UsersList", java.util.List.class);
        map.put("Variant", org.zendesk.client.v2.model.dynamic.DynamicContentItemVariant.class);
        ALL_OPTIONS = map;
    }

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        org.apache.camel.component.zendesk.ZendeskEndpointConfiguration target = (org.apache.camel.component.zendesk.ZendeskEndpointConfiguration) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "article":
        case "Article": target.setArticle(property(camelContext, org.zendesk.client.v2.model.hc.Article.class, value)); return true;
        case "articleattachments":
        case "ArticleAttachments": target.setArticleAttachments(property(camelContext, org.zendesk.client.v2.model.hc.ArticleAttachments.class, value)); return true;
        case "articleid":
        case "ArticleId": target.setArticleId(property(camelContext, java.lang.Long.class, value)); return true;
        case "articleid0":
        case "ArticleId0": target.setArticleId0(property(camelContext, java.lang.Long.class, value)); return true;
        case "attachment":
        case "Attachment": target.setAttachment(property(camelContext, org.zendesk.client.v2.model.Attachment.class, value)); return true;
        case "attachments":
        case "Attachments": target.setAttachments(property(camelContext, java.util.List.class, value)); return true;
        case "audit":
        case "Audit": target.setAudit(property(camelContext, org.zendesk.client.v2.model.Audit.class, value)); return true;
        case "auditid":
        case "AuditId": target.setAuditId(property(camelContext, java.lang.Long.class, value)); return true;
        case "automation":
        case "Automation": target.setAutomation(property(camelContext, org.zendesk.client.v2.model.Automation.class, value)); return true;
        case "automationid":
        case "AutomationId": target.setAutomationId(property(camelContext, java.lang.Long.class, value)); return true;
        case "automationid0":
        case "AutomationId0": target.setAutomationId0(property(camelContext, java.lang.Long.class, value)); return true;
        case "category":
        case "Category": target.setCategory(property(camelContext, org.zendesk.client.v2.model.hc.Category.class, value)); return true;
        case "categoryid":
        case "CategoryId": target.setCategoryId(property(camelContext, java.lang.Long.class, value)); return true;
        case "category_id":
        case "Category_id": target.setCategory_id(property(camelContext, java.lang.Long.class, value)); return true;
        case "comment":
        case "Comment": target.setComment(property(camelContext, org.zendesk.client.v2.model.Comment.class, value)); return true;
        case "commentid":
        case "CommentId": target.setCommentId(property(camelContext, java.lang.Long.class, value)); return true;
        case "content":
        case "Content": target.setContent(property(camelContext, byte[].class, value)); return true;
        case "contenttype":
        case "ContentType": target.setContentType(property(camelContext, java.lang.String.class, value)); return true;
        case "email":
        case "Email": target.setEmail(property(camelContext, java.lang.String.class, value)); return true;
        case "endtime":
        case "EndTime": target.setEndTime(property(camelContext, java.util.Date.class, value)); return true;
        case "externalid":
        case "ExternalId": target.setExternalId(property(camelContext, java.lang.String.class, value)); return true;
        case "field":
        case "Field": target.setField(property(camelContext, org.zendesk.client.v2.model.Field.class, value)); return true;
        case "file":
        case "File": target.setFile(property(camelContext, java.io.File.class, value)); return true;
        case "filename":
        case "FileName": target.setFileName(property(camelContext, java.lang.String.class, value)); return true;
        case "forum":
        case "Forum": target.setForum(property(camelContext, org.zendesk.client.v2.model.Forum.class, value)); return true;
        case "forum_id":
        case "Forum_id": target.setForum_id(property(camelContext, java.lang.Long.class, value)); return true;
        case "group":
        case "Group": target.setGroup(property(camelContext, org.zendesk.client.v2.model.Group.class, value)); return true;
        case "groupmembership":
        case "GroupMembership": target.setGroupMembership(property(camelContext, org.zendesk.client.v2.model.GroupMembership.class, value)); return true;
        case "group_id":
        case "Group_id": target.setGroup_id(property(camelContext, java.lang.Long.class, value)); return true;
        case "group_membership_id":
        case "Group_membership_id": target.setGroup_membership_id(property(camelContext, java.lang.Long.class, value)); return true;
        case "id":
        case "Id": target.setId(property(camelContext, java.lang.Long.class, value)); return true;
        case "idarticle":
        case "IdArticle": target.setIdArticle(property(camelContext, java.lang.String.class, value)); return true;
        case "identity":
        case "Identity": target.setIdentity(property(camelContext, org.zendesk.client.v2.model.Identity.class, value)); return true;
        case "identityid":
        case "IdentityId": target.setIdentityId(property(camelContext, java.lang.Long.class, value)); return true;
        case "ids":
        case "Ids": target.setIds(property(camelContext, long[].class, value)); return true;
        case "includearchived":
        case "IncludeArchived": target.setIncludeArchived(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "inline":
        case "Inline": target.setInline(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "installationid":
        case "InstallationId": target.setInstallationId(property(camelContext, java.lang.Integer.class, value)); return true;
        case "item":
        case "Item": target.setItem(property(camelContext, org.zendesk.client.v2.model.dynamic.DynamicContentItem.class, value)); return true;
        case "itemid":
        case "ItemId": target.setItemId(property(camelContext, java.lang.Long.class, value)); return true;
        case "json":
        case "Json": target.setJson(property(camelContext, java.lang.String.class, value)); return true;
        case "labels":
        case "Labels": target.setLabels(property(camelContext, java.util.List.class, value)); return true;
        case "locale":
        case "Locale": target.setLocale(property(camelContext, java.lang.String.class, value)); return true;
        case "macro":
        case "Macro": target.setMacro(property(camelContext, org.zendesk.client.v2.model.Macro.class, value)); return true;
        case "macroid":
        case "MacroId": target.setMacroId(property(camelContext, java.lang.Long.class, value)); return true;
        case "macroid0":
        case "MacroId0": target.setMacroId0(property(camelContext, java.lang.Long.class, value)); return true;
        case "methodname":
        case "MethodName": target.setMethodName(property(camelContext, org.apache.camel.component.zendesk.internal.ZendeskApiMethod.class, value)); return true;
        case "monitorid":
        case "MonitorId": target.setMonitorId(property(camelContext, java.lang.Long.class, value)); return true;
        case "name":
        case "Name": target.setName(property(camelContext, java.lang.String.class, value)); return true;
        case "newpassword":
        case "NewPassword": target.setNewPassword(property(camelContext, java.lang.String.class, value)); return true;
        case "notifysubscribers":
        case "NotifySubscribers": target.setNotifySubscribers(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "oauthtoken":
        case "OauthToken": target.setOauthToken(property(camelContext, java.lang.String.class, value)); return true;
        case "oldpassword":
        case "OldPassword": target.setOldPassword(property(camelContext, java.lang.String.class, value)); return true;
        case "order":
        case "Order": target.setOrder(property(camelContext, org.zendesk.client.v2.model.SortOrder.class, value)); return true;
        case "organization":
        case "Organization": target.setOrganization(property(camelContext, org.zendesk.client.v2.model.Organization.class, value)); return true;
        case "organizationid":
        case "OrganizationId": target.setOrganizationId(property(camelContext, java.lang.Long.class, value)); return true;
        case "organizationlist":
        case "OrganizationList": target.setOrganizationList(property(camelContext, java.util.List.class, value)); return true;
        case "organizationmembership":
        case "OrganizationMembership": target.setOrganizationMembership(property(camelContext, org.zendesk.client.v2.model.OrganizationMembership.class, value)); return true;
        case "organizationmembershiplist":
        case "OrganizationMembershipList": target.setOrganizationMembershipList(property(camelContext, java.util.List.class, value)); return true;
        case "organizationmemberships":
        case "OrganizationMemberships": target.setOrganizationMemberships(property(camelContext, org.zendesk.client.v2.model.OrganizationMembership[].class, value)); return true;
        case "organization_id":
        case "Organization_id": target.setOrganization_id(property(camelContext, java.lang.Long.class, value)); return true;
        case "organization_membership_id":
        case "Organization_membership_id": target.setOrganization_membership_id(property(camelContext, java.lang.Long.class, value)); return true;
        case "organizations":
        case "Organizations": target.setOrganizations(property(camelContext, org.zendesk.client.v2.model.Organization[].class, value)); return true;
        case "page":
        case "Page": target.setPage(property(camelContext, java.lang.Integer.class, value)); return true;
        case "parameters":
        case "Parameters": target.setParameters(property(camelContext, java.lang.String.class, value)); return true;
        case "params":
        case "Params": target.setParams(property(camelContext, java.util.Map.class, value)); return true;
        case "password":
        case "Password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
        case "permissiongroup":
        case "PermissionGroup": target.setPermissionGroup(property(camelContext, org.zendesk.client.v2.model.hc.PermissionGroup.class, value)); return true;
        case "query":
        case "Query": target.setQuery(property(camelContext, java.lang.String.class, value)); return true;
        case "request":
        case "Request": target.setRequest(property(camelContext, org.zendesk.client.v2.model.Request.class, value)); return true;
        case "requestid":
        case "RequestId": target.setRequestId(property(camelContext, java.lang.Long.class, value)); return true;
        case "role":
        case "Role": target.setRole(property(camelContext, java.lang.String.class, value)); return true;
        case "roles":
        case "Roles": target.setRoles(property(camelContext, java.lang.String[].class, value)); return true;
        case "satisfactionrating":
        case "SatisfactionRating": target.setSatisfactionRating(property(camelContext, org.zendesk.client.v2.model.SatisfactionRating.class, value)); return true;
        case "schedule":
        case "Schedule": target.setSchedule(property(camelContext, org.zendesk.client.v2.model.schedules.Schedule.class, value)); return true;
        case "scheduleid":
        case "ScheduleId": target.setScheduleId(property(camelContext, java.lang.Long.class, value)); return true;
        case "searchterm":
        case "SearchTerm": target.setSearchTerm(property(camelContext, java.lang.String.class, value)); return true;
        case "section":
        case "Section": target.setSection(property(camelContext, org.zendesk.client.v2.model.hc.Section.class, value)); return true;
        case "sectionid":
        case "SectionId": target.setSectionId(property(camelContext, java.lang.Long.class, value)); return true;
        case "serverurl":
        case "ServerUrl": target.setServerUrl(property(camelContext, java.lang.String.class, value)); return true;
        case "sortby":
        case "SortBy": target.setSortBy(property(camelContext, java.lang.String.class, value)); return true;
        case "sortorder":
        case "SortOrder": target.setSortOrder(property(camelContext, org.zendesk.client.v2.model.SortOrder.class, value)); return true;
        case "starttime":
        case "StartTime": target.setStartTime(property(camelContext, java.util.Date.class, value)); return true;
        case "status":
        case "Status": target.setStatus(property(camelContext, org.zendesk.client.v2.model.JobStatus.class, value)); return true;
        case "statuses":
        case "Statuses": target.setStatuses(property(camelContext, java.util.List.class, value)); return true;
        case "suspendedticket":
        case "SuspendedTicket": target.setSuspendedTicket(property(camelContext, org.zendesk.client.v2.model.SuspendedTicket.class, value)); return true;
        case "tags":
        case "Tags": target.setTags(property(camelContext, java.lang.String[].class, value)); return true;
        case "target":
        case "Target": target.setTarget(property(camelContext, org.zendesk.client.v2.model.targets.Target.class, value)); return true;
        case "targetid":
        case "TargetId": target.setTargetId(property(camelContext, java.lang.Long.class, value)); return true;
        case "ticket":
        case "Ticket": target.setTicket(property(camelContext, org.zendesk.client.v2.model.Ticket.class, value)); return true;
        case "ticketform":
        case "TicketForm": target.setTicketForm(property(camelContext, org.zendesk.client.v2.model.TicketForm.class, value)); return true;
        case "ticketid":
        case "TicketId": target.setTicketId(property(camelContext, java.lang.Long.class, value)); return true;
        case "ticketid0":
        case "TicketId0": target.setTicketId0(property(camelContext, java.lang.Long.class, value)); return true;
        case "ticketimport":
        case "TicketImport": target.setTicketImport(property(camelContext, org.zendesk.client.v2.model.TicketImport.class, value)); return true;
        case "ticketlist":
        case "TicketList": target.setTicketList(property(camelContext, java.util.List.class, value)); return true;
        case "tickets":
        case "Tickets": target.setTickets(property(camelContext, org.zendesk.client.v2.model.Ticket[].class, value)); return true;
        case "token":
        case "Token": target.setToken(property(camelContext, java.lang.String.class, value)); return true;
        case "topic":
        case "Topic": target.setTopic(property(camelContext, org.zendesk.client.v2.model.Topic.class, value)); return true;
        case "translation":
        case "Translation": target.setTranslation(property(camelContext, org.zendesk.client.v2.model.hc.Translation.class, value)); return true;
        case "translationid":
        case "TranslationId": target.setTranslationId(property(camelContext, java.lang.Long.class, value)); return true;
        case "trigger":
        case "Trigger": target.setTrigger(property(camelContext, org.zendesk.client.v2.model.Trigger.class, value)); return true;
        case "triggerid":
        case "TriggerId": target.setTriggerId(property(camelContext, java.lang.Long.class, value)); return true;
        case "triggerid0":
        case "TriggerId0": target.setTriggerId0(property(camelContext, java.lang.Long.class, value)); return true;
        case "tweetid":
        case "TweetId": target.setTweetId(property(camelContext, java.lang.Long.class, value)); return true;
        case "type":
        case "Type": target.setType(property(camelContext, java.lang.Class.class, value)); return true;
        case "unixepochtime":
        case "UnixEpochTime": target.setUnixEpochTime(property(camelContext, java.lang.Long.class, value)); return true;
        case "upload":
        case "Upload": target.setUpload(property(camelContext, org.zendesk.client.v2.model.Attachment.Upload.class, value)); return true;
        case "user":
        case "User": target.setUser(property(camelContext, org.zendesk.client.v2.model.User.class, value)); return true;
        case "userid":
        case "UserId": target.setUserId(property(camelContext, java.lang.Long.class, value)); return true;
        case "userid0":
        case "UserId0": target.setUserId0(property(camelContext, java.lang.Long.class, value)); return true;
        case "useridthatwillbemerged":
        case "UserIdThatWillBeMerged": target.setUserIdThatWillBeMerged(property(camelContext, java.lang.Long.class, value)); return true;
        case "useridthatwillremain":
        case "UserIdThatWillRemain": target.setUserIdThatWillRemain(property(camelContext, java.lang.Long.class, value)); return true;
        case "userlist":
        case "UserList": target.setUserList(property(camelContext, java.util.List.class, value)); return true;
        case "usersegment":
        case "UserSegment": target.setUserSegment(property(camelContext, org.zendesk.client.v2.model.hc.UserSegment.class, value)); return true;
        case "user_id":
        case "User_id": target.setUser_id(property(camelContext, java.lang.Long.class, value)); return true;
        case "username":
        case "Username": target.setUsername(property(camelContext, java.lang.String.class, value)); return true;
        case "users":
        case "Users": target.setUsers(property(camelContext, org.zendesk.client.v2.model.User[].class, value)); return true;
        case "userslist":
        case "UsersList": target.setUsersList(property(camelContext, java.util.List.class, value)); return true;
        case "variant":
        case "Variant": target.setVariant(property(camelContext, org.zendesk.client.v2.model.dynamic.DynamicContentItemVariant.class, value)); return true;
        default: return false;
        }
    }

    @Override
    public Map<String, Object> getAllOptions(Object target) {
        return ALL_OPTIONS;
    }

    @Override
    public Class<?> getOptionType(String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "article":
        case "Article": return org.zendesk.client.v2.model.hc.Article.class;
        case "articleattachments":
        case "ArticleAttachments": return org.zendesk.client.v2.model.hc.ArticleAttachments.class;
        case "articleid":
        case "ArticleId": return java.lang.Long.class;
        case "articleid0":
        case "ArticleId0": return java.lang.Long.class;
        case "attachment":
        case "Attachment": return org.zendesk.client.v2.model.Attachment.class;
        case "attachments":
        case "Attachments": return java.util.List.class;
        case "audit":
        case "Audit": return org.zendesk.client.v2.model.Audit.class;
        case "auditid":
        case "AuditId": return java.lang.Long.class;
        case "automation":
        case "Automation": return org.zendesk.client.v2.model.Automation.class;
        case "automationid":
        case "AutomationId": return java.lang.Long.class;
        case "automationid0":
        case "AutomationId0": return java.lang.Long.class;
        case "category":
        case "Category": return org.zendesk.client.v2.model.hc.Category.class;
        case "categoryid":
        case "CategoryId": return java.lang.Long.class;
        case "category_id":
        case "Category_id": return java.lang.Long.class;
        case "comment":
        case "Comment": return org.zendesk.client.v2.model.Comment.class;
        case "commentid":
        case "CommentId": return java.lang.Long.class;
        case "content":
        case "Content": return byte[].class;
        case "contenttype":
        case "ContentType": return java.lang.String.class;
        case "email":
        case "Email": return java.lang.String.class;
        case "endtime":
        case "EndTime": return java.util.Date.class;
        case "externalid":
        case "ExternalId": return java.lang.String.class;
        case "field":
        case "Field": return org.zendesk.client.v2.model.Field.class;
        case "file":
        case "File": return java.io.File.class;
        case "filename":
        case "FileName": return java.lang.String.class;
        case "forum":
        case "Forum": return org.zendesk.client.v2.model.Forum.class;
        case "forum_id":
        case "Forum_id": return java.lang.Long.class;
        case "group":
        case "Group": return org.zendesk.client.v2.model.Group.class;
        case "groupmembership":
        case "GroupMembership": return org.zendesk.client.v2.model.GroupMembership.class;
        case "group_id":
        case "Group_id": return java.lang.Long.class;
        case "group_membership_id":
        case "Group_membership_id": return java.lang.Long.class;
        case "id":
        case "Id": return java.lang.Long.class;
        case "idarticle":
        case "IdArticle": return java.lang.String.class;
        case "identity":
        case "Identity": return org.zendesk.client.v2.model.Identity.class;
        case "identityid":
        case "IdentityId": return java.lang.Long.class;
        case "ids":
        case "Ids": return long[].class;
        case "includearchived":
        case "IncludeArchived": return java.lang.Boolean.class;
        case "inline":
        case "Inline": return java.lang.Boolean.class;
        case "installationid":
        case "InstallationId": return java.lang.Integer.class;
        case "item":
        case "Item": return org.zendesk.client.v2.model.dynamic.DynamicContentItem.class;
        case "itemid":
        case "ItemId": return java.lang.Long.class;
        case "json":
        case "Json": return java.lang.String.class;
        case "labels":
        case "Labels": return java.util.List.class;
        case "locale":
        case "Locale": return java.lang.String.class;
        case "macro":
        case "Macro": return org.zendesk.client.v2.model.Macro.class;
        case "macroid":
        case "MacroId": return java.lang.Long.class;
        case "macroid0":
        case "MacroId0": return java.lang.Long.class;
        case "methodname":
        case "MethodName": return org.apache.camel.component.zendesk.internal.ZendeskApiMethod.class;
        case "monitorid":
        case "MonitorId": return java.lang.Long.class;
        case "name":
        case "Name": return java.lang.String.class;
        case "newpassword":
        case "NewPassword": return java.lang.String.class;
        case "notifysubscribers":
        case "NotifySubscribers": return java.lang.Boolean.class;
        case "oauthtoken":
        case "OauthToken": return java.lang.String.class;
        case "oldpassword":
        case "OldPassword": return java.lang.String.class;
        case "order":
        case "Order": return org.zendesk.client.v2.model.SortOrder.class;
        case "organization":
        case "Organization": return org.zendesk.client.v2.model.Organization.class;
        case "organizationid":
        case "OrganizationId": return java.lang.Long.class;
        case "organizationlist":
        case "OrganizationList": return java.util.List.class;
        case "organizationmembership":
        case "OrganizationMembership": return org.zendesk.client.v2.model.OrganizationMembership.class;
        case "organizationmembershiplist":
        case "OrganizationMembershipList": return java.util.List.class;
        case "organizationmemberships":
        case "OrganizationMemberships": return org.zendesk.client.v2.model.OrganizationMembership[].class;
        case "organization_id":
        case "Organization_id": return java.lang.Long.class;
        case "organization_membership_id":
        case "Organization_membership_id": return java.lang.Long.class;
        case "organizations":
        case "Organizations": return org.zendesk.client.v2.model.Organization[].class;
        case "page":
        case "Page": return java.lang.Integer.class;
        case "parameters":
        case "Parameters": return java.lang.String.class;
        case "params":
        case "Params": return java.util.Map.class;
        case "password":
        case "Password": return java.lang.String.class;
        case "permissiongroup":
        case "PermissionGroup": return org.zendesk.client.v2.model.hc.PermissionGroup.class;
        case "query":
        case "Query": return java.lang.String.class;
        case "request":
        case "Request": return org.zendesk.client.v2.model.Request.class;
        case "requestid":
        case "RequestId": return java.lang.Long.class;
        case "role":
        case "Role": return java.lang.String.class;
        case "roles":
        case "Roles": return java.lang.String[].class;
        case "satisfactionrating":
        case "SatisfactionRating": return org.zendesk.client.v2.model.SatisfactionRating.class;
        case "schedule":
        case "Schedule": return org.zendesk.client.v2.model.schedules.Schedule.class;
        case "scheduleid":
        case "ScheduleId": return java.lang.Long.class;
        case "searchterm":
        case "SearchTerm": return java.lang.String.class;
        case "section":
        case "Section": return org.zendesk.client.v2.model.hc.Section.class;
        case "sectionid":
        case "SectionId": return java.lang.Long.class;
        case "serverurl":
        case "ServerUrl": return java.lang.String.class;
        case "sortby":
        case "SortBy": return java.lang.String.class;
        case "sortorder":
        case "SortOrder": return org.zendesk.client.v2.model.SortOrder.class;
        case "starttime":
        case "StartTime": return java.util.Date.class;
        case "status":
        case "Status": return org.zendesk.client.v2.model.JobStatus.class;
        case "statuses":
        case "Statuses": return java.util.List.class;
        case "suspendedticket":
        case "SuspendedTicket": return org.zendesk.client.v2.model.SuspendedTicket.class;
        case "tags":
        case "Tags": return java.lang.String[].class;
        case "target":
        case "Target": return org.zendesk.client.v2.model.targets.Target.class;
        case "targetid":
        case "TargetId": return java.lang.Long.class;
        case "ticket":
        case "Ticket": return org.zendesk.client.v2.model.Ticket.class;
        case "ticketform":
        case "TicketForm": return org.zendesk.client.v2.model.TicketForm.class;
        case "ticketid":
        case "TicketId": return java.lang.Long.class;
        case "ticketid0":
        case "TicketId0": return java.lang.Long.class;
        case "ticketimport":
        case "TicketImport": return org.zendesk.client.v2.model.TicketImport.class;
        case "ticketlist":
        case "TicketList": return java.util.List.class;
        case "tickets":
        case "Tickets": return org.zendesk.client.v2.model.Ticket[].class;
        case "token":
        case "Token": return java.lang.String.class;
        case "topic":
        case "Topic": return org.zendesk.client.v2.model.Topic.class;
        case "translation":
        case "Translation": return org.zendesk.client.v2.model.hc.Translation.class;
        case "translationid":
        case "TranslationId": return java.lang.Long.class;
        case "trigger":
        case "Trigger": return org.zendesk.client.v2.model.Trigger.class;
        case "triggerid":
        case "TriggerId": return java.lang.Long.class;
        case "triggerid0":
        case "TriggerId0": return java.lang.Long.class;
        case "tweetid":
        case "TweetId": return java.lang.Long.class;
        case "type":
        case "Type": return java.lang.Class.class;
        case "unixepochtime":
        case "UnixEpochTime": return java.lang.Long.class;
        case "upload":
        case "Upload": return org.zendesk.client.v2.model.Attachment.Upload.class;
        case "user":
        case "User": return org.zendesk.client.v2.model.User.class;
        case "userid":
        case "UserId": return java.lang.Long.class;
        case "userid0":
        case "UserId0": return java.lang.Long.class;
        case "useridthatwillbemerged":
        case "UserIdThatWillBeMerged": return java.lang.Long.class;
        case "useridthatwillremain":
        case "UserIdThatWillRemain": return java.lang.Long.class;
        case "userlist":
        case "UserList": return java.util.List.class;
        case "usersegment":
        case "UserSegment": return org.zendesk.client.v2.model.hc.UserSegment.class;
        case "user_id":
        case "User_id": return java.lang.Long.class;
        case "username":
        case "Username": return java.lang.String.class;
        case "users":
        case "Users": return org.zendesk.client.v2.model.User[].class;
        case "userslist":
        case "UsersList": return java.util.List.class;
        case "variant":
        case "Variant": return org.zendesk.client.v2.model.dynamic.DynamicContentItemVariant.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        org.apache.camel.component.zendesk.ZendeskEndpointConfiguration target = (org.apache.camel.component.zendesk.ZendeskEndpointConfiguration) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "article":
        case "Article": return target.getArticle();
        case "articleattachments":
        case "ArticleAttachments": return target.getArticleAttachments();
        case "articleid":
        case "ArticleId": return target.getArticleId();
        case "articleid0":
        case "ArticleId0": return target.getArticleId0();
        case "attachment":
        case "Attachment": return target.getAttachment();
        case "attachments":
        case "Attachments": return target.getAttachments();
        case "audit":
        case "Audit": return target.getAudit();
        case "auditid":
        case "AuditId": return target.getAuditId();
        case "automation":
        case "Automation": return target.getAutomation();
        case "automationid":
        case "AutomationId": return target.getAutomationId();
        case "automationid0":
        case "AutomationId0": return target.getAutomationId0();
        case "category":
        case "Category": return target.getCategory();
        case "categoryid":
        case "CategoryId": return target.getCategoryId();
        case "category_id":
        case "Category_id": return target.getCategory_id();
        case "comment":
        case "Comment": return target.getComment();
        case "commentid":
        case "CommentId": return target.getCommentId();
        case "content":
        case "Content": return target.getContent();
        case "contenttype":
        case "ContentType": return target.getContentType();
        case "email":
        case "Email": return target.getEmail();
        case "endtime":
        case "EndTime": return target.getEndTime();
        case "externalid":
        case "ExternalId": return target.getExternalId();
        case "field":
        case "Field": return target.getField();
        case "file":
        case "File": return target.getFile();
        case "filename":
        case "FileName": return target.getFileName();
        case "forum":
        case "Forum": return target.getForum();
        case "forum_id":
        case "Forum_id": return target.getForum_id();
        case "group":
        case "Group": return target.getGroup();
        case "groupmembership":
        case "GroupMembership": return target.getGroupMembership();
        case "group_id":
        case "Group_id": return target.getGroup_id();
        case "group_membership_id":
        case "Group_membership_id": return target.getGroup_membership_id();
        case "id":
        case "Id": return target.getId();
        case "idarticle":
        case "IdArticle": return target.getIdArticle();
        case "identity":
        case "Identity": return target.getIdentity();
        case "identityid":
        case "IdentityId": return target.getIdentityId();
        case "ids":
        case "Ids": return target.getIds();
        case "includearchived":
        case "IncludeArchived": return target.getIncludeArchived();
        case "inline":
        case "Inline": return target.getInline();
        case "installationid":
        case "InstallationId": return target.getInstallationId();
        case "item":
        case "Item": return target.getItem();
        case "itemid":
        case "ItemId": return target.getItemId();
        case "json":
        case "Json": return target.getJson();
        case "labels":
        case "Labels": return target.getLabels();
        case "locale":
        case "Locale": return target.getLocale();
        case "macro":
        case "Macro": return target.getMacro();
        case "macroid":
        case "MacroId": return target.getMacroId();
        case "macroid0":
        case "MacroId0": return target.getMacroId0();
        case "methodname":
        case "MethodName": return target.getMethodName();
        case "monitorid":
        case "MonitorId": return target.getMonitorId();
        case "name":
        case "Name": return target.getName();
        case "newpassword":
        case "NewPassword": return target.getNewPassword();
        case "notifysubscribers":
        case "NotifySubscribers": return target.getNotifySubscribers();
        case "oauthtoken":
        case "OauthToken": return target.getOauthToken();
        case "oldpassword":
        case "OldPassword": return target.getOldPassword();
        case "order":
        case "Order": return target.getOrder();
        case "organization":
        case "Organization": return target.getOrganization();
        case "organizationid":
        case "OrganizationId": return target.getOrganizationId();
        case "organizationlist":
        case "OrganizationList": return target.getOrganizationList();
        case "organizationmembership":
        case "OrganizationMembership": return target.getOrganizationMembership();
        case "organizationmembershiplist":
        case "OrganizationMembershipList": return target.getOrganizationMembershipList();
        case "organizationmemberships":
        case "OrganizationMemberships": return target.getOrganizationMemberships();
        case "organization_id":
        case "Organization_id": return target.getOrganization_id();
        case "organization_membership_id":
        case "Organization_membership_id": return target.getOrganization_membership_id();
        case "organizations":
        case "Organizations": return target.getOrganizations();
        case "page":
        case "Page": return target.getPage();
        case "parameters":
        case "Parameters": return target.getParameters();
        case "params":
        case "Params": return target.getParams();
        case "password":
        case "Password": return target.getPassword();
        case "permissiongroup":
        case "PermissionGroup": return target.getPermissionGroup();
        case "query":
        case "Query": return target.getQuery();
        case "request":
        case "Request": return target.getRequest();
        case "requestid":
        case "RequestId": return target.getRequestId();
        case "role":
        case "Role": return target.getRole();
        case "roles":
        case "Roles": return target.getRoles();
        case "satisfactionrating":
        case "SatisfactionRating": return target.getSatisfactionRating();
        case "schedule":
        case "Schedule": return target.getSchedule();
        case "scheduleid":
        case "ScheduleId": return target.getScheduleId();
        case "searchterm":
        case "SearchTerm": return target.getSearchTerm();
        case "section":
        case "Section": return target.getSection();
        case "sectionid":
        case "SectionId": return target.getSectionId();
        case "serverurl":
        case "ServerUrl": return target.getServerUrl();
        case "sortby":
        case "SortBy": return target.getSortBy();
        case "sortorder":
        case "SortOrder": return target.getSortOrder();
        case "starttime":
        case "StartTime": return target.getStartTime();
        case "status":
        case "Status": return target.getStatus();
        case "statuses":
        case "Statuses": return target.getStatuses();
        case "suspendedticket":
        case "SuspendedTicket": return target.getSuspendedTicket();
        case "tags":
        case "Tags": return target.getTags();
        case "target":
        case "Target": return target.getTarget();
        case "targetid":
        case "TargetId": return target.getTargetId();
        case "ticket":
        case "Ticket": return target.getTicket();
        case "ticketform":
        case "TicketForm": return target.getTicketForm();
        case "ticketid":
        case "TicketId": return target.getTicketId();
        case "ticketid0":
        case "TicketId0": return target.getTicketId0();
        case "ticketimport":
        case "TicketImport": return target.getTicketImport();
        case "ticketlist":
        case "TicketList": return target.getTicketList();
        case "tickets":
        case "Tickets": return target.getTickets();
        case "token":
        case "Token": return target.getToken();
        case "topic":
        case "Topic": return target.getTopic();
        case "translation":
        case "Translation": return target.getTranslation();
        case "translationid":
        case "TranslationId": return target.getTranslationId();
        case "trigger":
        case "Trigger": return target.getTrigger();
        case "triggerid":
        case "TriggerId": return target.getTriggerId();
        case "triggerid0":
        case "TriggerId0": return target.getTriggerId0();
        case "tweetid":
        case "TweetId": return target.getTweetId();
        case "type":
        case "Type": return target.getType();
        case "unixepochtime":
        case "UnixEpochTime": return target.getUnixEpochTime();
        case "upload":
        case "Upload": return target.getUpload();
        case "user":
        case "User": return target.getUser();
        case "userid":
        case "UserId": return target.getUserId();
        case "userid0":
        case "UserId0": return target.getUserId0();
        case "useridthatwillbemerged":
        case "UserIdThatWillBeMerged": return target.getUserIdThatWillBeMerged();
        case "useridthatwillremain":
        case "UserIdThatWillRemain": return target.getUserIdThatWillRemain();
        case "userlist":
        case "UserList": return target.getUserList();
        case "usersegment":
        case "UserSegment": return target.getUserSegment();
        case "user_id":
        case "User_id": return target.getUser_id();
        case "username":
        case "Username": return target.getUsername();
        case "users":
        case "Users": return target.getUsers();
        case "userslist":
        case "UsersList": return target.getUsersList();
        case "variant":
        case "Variant": return target.getVariant();
        default: return null;
        }
    }

    @Override
    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "attachments":
        case "Attachments": return org.zendesk.client.v2.model.Attachment.class;
        case "labels":
        case "Labels": return java.lang.String.class;
        case "organizationlist":
        case "OrganizationList": return org.zendesk.client.v2.model.Organization.class;
        case "organizationmembershiplist":
        case "OrganizationMembershipList": return org.zendesk.client.v2.model.OrganizationMembership.class;
        case "params":
        case "Params": return java.lang.Object.class;
        case "statuses":
        case "Statuses": return org.zendesk.client.v2.model.JobStatus.class;
        case "ticketlist":
        case "TicketList": return org.zendesk.client.v2.model.Ticket.class;
        case "type":
        case "Type": return org.zendesk.client.v2.model.SearchResultEntity.class;
        case "userlist":
        case "UserList": return org.zendesk.client.v2.model.User.class;
        case "userslist":
        case "UsersList": return org.zendesk.client.v2.model.User.class;
        default: return null;
        }
    }
}

