content: /*
   * Camel ApiCollection generated by camel-api-component-maven-plugin
   */
  package org.apache.camel.component.twilio.internal;
  
  import java.util.Arrays;
  import java.util.EnumMap;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  
  import org.apache.camel.component.twilio.TwilioConfiguration;
  import org.apache.camel.component.twilio.AccountEndpointConfiguration;
  import org.apache.camel.component.twilio.AddressEndpointConfiguration;
  import org.apache.camel.component.twilio.ApplicationEndpointConfiguration;
  import org.apache.camel.component.twilio.AvailablePhoneNumberCountryEndpointConfiguration;
  import org.apache.camel.component.twilio.CallEndpointConfiguration;
  import org.apache.camel.component.twilio.ConferenceEndpointConfiguration;
  import org.apache.camel.component.twilio.ConnectAppEndpointConfiguration;
  import org.apache.camel.component.twilio.IncomingPhoneNumberEndpointConfiguration;
  import org.apache.camel.component.twilio.KeyEndpointConfiguration;
  import org.apache.camel.component.twilio.MessageEndpointConfiguration;
  import org.apache.camel.component.twilio.NewKeyEndpointConfiguration;
  import org.apache.camel.component.twilio.NewSigningKeyEndpointConfiguration;
  import org.apache.camel.component.twilio.NotificationEndpointConfiguration;
  import org.apache.camel.component.twilio.OutgoingCallerIdEndpointConfiguration;
  import org.apache.camel.component.twilio.QueueEndpointConfiguration;
  import org.apache.camel.component.twilio.RecordingEndpointConfiguration;
  import org.apache.camel.component.twilio.ShortCodeEndpointConfiguration;
  import org.apache.camel.component.twilio.SigningKeyEndpointConfiguration;
  import org.apache.camel.component.twilio.TokenEndpointConfiguration;
  import org.apache.camel.component.twilio.TranscriptionEndpointConfiguration;
  import org.apache.camel.component.twilio.ValidationRequestEndpointConfiguration;
  import org.apache.camel.component.twilio.AddressDependentPhoneNumberEndpointConfiguration;
  import org.apache.camel.component.twilio.AvailablePhoneNumberCountryLocalEndpointConfiguration;
  import org.apache.camel.component.twilio.AvailablePhoneNumberCountryMobileEndpointConfiguration;
  import org.apache.camel.component.twilio.AvailablePhoneNumberCountryTollFreeEndpointConfiguration;
  import org.apache.camel.component.twilio.CallNotificationEndpointConfiguration;
  import org.apache.camel.component.twilio.CallRecordingEndpointConfiguration;
  import org.apache.camel.component.twilio.ConferenceParticipantEndpointConfiguration;
  import org.apache.camel.component.twilio.IncomingPhoneNumberLocalEndpointConfiguration;
  import org.apache.camel.component.twilio.IncomingPhoneNumberMobileEndpointConfiguration;
  import org.apache.camel.component.twilio.IncomingPhoneNumberTollFreeEndpointConfiguration;
  import org.apache.camel.component.twilio.MessageFeedbackEndpointConfiguration;
  import org.apache.camel.component.twilio.MessageMediaEndpointConfiguration;
  import org.apache.camel.component.twilio.QueueMemberEndpointConfiguration;
  import org.apache.camel.component.twilio.RecordingAddOnResultEndpointConfiguration;
  import org.apache.camel.component.twilio.RecordingTranscriptionEndpointConfiguration;
  import org.apache.camel.component.twilio.RecordingAddOnResultPayloadEndpointConfiguration;
  import org.apache.camel.component.twilio.SipCredentialListEndpointConfiguration;
  import org.apache.camel.component.twilio.SipDomainEndpointConfiguration;
  import org.apache.camel.component.twilio.SipIpAccessControlListEndpointConfiguration;
  import org.apache.camel.component.twilio.SipCredentialEndpointConfiguration;
  import org.apache.camel.component.twilio.SipDomainCredentialListMappingEndpointConfiguration;
  import org.apache.camel.component.twilio.SipDomainIpAccessControlListMappingEndpointConfiguration;
  import org.apache.camel.component.twilio.SipIpAccessControlListIpAddressEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageTriggerEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordAllTimeEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordDailyEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordLastMonthEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordMonthlyEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordThisMonthEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordTodayEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordYearlyEndpointConfiguration;
  import org.apache.camel.component.twilio.UsageRecordYesterdayEndpointConfiguration;
  
  import org.apache.camel.support.component.ApiCollection;
  import org.apache.camel.support.component.ApiMethod;
  import org.apache.camel.support.component.ApiMethodHelper;
  
  /**
   * Camel {@link ApiCollection} for Twilio
   */
  public final class TwilioApiCollection extends ApiCollection<TwilioApiName, TwilioConfiguration> {
  
      private TwilioApiCollection() {
          final Map<String, String> aliases = new HashMap<>();
          final Map<TwilioApiName, ApiMethodHelper<? extends ApiMethod>> apiHelpers = new EnumMap<>(TwilioApiName.class);
          final Map<Class<? extends ApiMethod>, TwilioApiName> apiMethods = new HashMap<>();
  
          List<String> nullableArgs;
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.ACCOUNT, new ApiMethodHelper<>(AccountApiMethod.class, aliases, nullableArgs));
          apiMethods.put(AccountApiMethod.class, TwilioApiName.ACCOUNT);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.ADDRESS, new ApiMethodHelper<>(AddressApiMethod.class, aliases, nullableArgs));
          apiMethods.put(AddressApiMethod.class, TwilioApiName.ADDRESS);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.APPLICATION, new ApiMethodHelper<>(ApplicationApiMethod.class, aliases, nullableArgs));
          apiMethods.put(ApplicationApiMethod.class, TwilioApiName.APPLICATION);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.AVAILABLE_PHONE_NUMBER_COUNTRY, new ApiMethodHelper<>(AvailablePhoneNumberCountryApiMethod.class, aliases, nullableArgs));
          apiMethods.put(AvailablePhoneNumberCountryApiMethod.class, TwilioApiName.AVAILABLE_PHONE_NUMBER_COUNTRY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.CALL, new ApiMethodHelper<>(CallApiMethod.class, aliases, nullableArgs));
          apiMethods.put(CallApiMethod.class, TwilioApiName.CALL);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.CONFERENCE, new ApiMethodHelper<>(ConferenceApiMethod.class, aliases, nullableArgs));
          apiMethods.put(ConferenceApiMethod.class, TwilioApiName.CONFERENCE);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.CONNECT_APP, new ApiMethodHelper<>(ConnectAppApiMethod.class, aliases, nullableArgs));
          apiMethods.put(ConnectAppApiMethod.class, TwilioApiName.CONNECT_APP);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.INCOMING_PHONE_NUMBER, new ApiMethodHelper<>(IncomingPhoneNumberApiMethod.class, aliases, nullableArgs));
          apiMethods.put(IncomingPhoneNumberApiMethod.class, TwilioApiName.INCOMING_PHONE_NUMBER);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.KEY, new ApiMethodHelper<>(KeyApiMethod.class, aliases, nullableArgs));
          apiMethods.put(KeyApiMethod.class, TwilioApiName.KEY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.MESSAGE, new ApiMethodHelper<>(MessageApiMethod.class, aliases, nullableArgs));
          apiMethods.put(MessageApiMethod.class, TwilioApiName.MESSAGE);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.NEW_KEY, new ApiMethodHelper<>(NewKeyApiMethod.class, aliases, nullableArgs));
          apiMethods.put(NewKeyApiMethod.class, TwilioApiName.NEW_KEY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.NEW_SIGNING_KEY, new ApiMethodHelper<>(NewSigningKeyApiMethod.class, aliases, nullableArgs));
          apiMethods.put(NewSigningKeyApiMethod.class, TwilioApiName.NEW_SIGNING_KEY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.NOTIFICATION, new ApiMethodHelper<>(NotificationApiMethod.class, aliases, nullableArgs));
          apiMethods.put(NotificationApiMethod.class, TwilioApiName.NOTIFICATION);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.OUTGOING_CALLER_ID, new ApiMethodHelper<>(OutgoingCallerIdApiMethod.class, aliases, nullableArgs));
          apiMethods.put(OutgoingCallerIdApiMethod.class, TwilioApiName.OUTGOING_CALLER_ID);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.QUEUE, new ApiMethodHelper<>(QueueApiMethod.class, aliases, nullableArgs));
          apiMethods.put(QueueApiMethod.class, TwilioApiName.QUEUE);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.RECORDING, new ApiMethodHelper<>(RecordingApiMethod.class, aliases, nullableArgs));
          apiMethods.put(RecordingApiMethod.class, TwilioApiName.RECORDING);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SHORT_CODE, new ApiMethodHelper<>(ShortCodeApiMethod.class, aliases, nullableArgs));
          apiMethods.put(ShortCodeApiMethod.class, TwilioApiName.SHORT_CODE);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SIGNING_KEY, new ApiMethodHelper<>(SigningKeyApiMethod.class, aliases, nullableArgs));
          apiMethods.put(SigningKeyApiMethod.class, TwilioApiName.SIGNING_KEY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.TOKEN, new ApiMethodHelper<>(TokenApiMethod.class, aliases, nullableArgs));
          apiMethods.put(TokenApiMethod.class, TwilioApiName.TOKEN);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.TRANSCRIPTION, new ApiMethodHelper<>(TranscriptionApiMethod.class, aliases, nullableArgs));
          apiMethods.put(TranscriptionApiMethod.class, TwilioApiName.TRANSCRIPTION);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.VALIDATION_REQUEST, new ApiMethodHelper<>(ValidationRequestApiMethod.class, aliases, nullableArgs));
          apiMethods.put(ValidationRequestApiMethod.class, TwilioApiName.VALIDATION_REQUEST);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.ADDRESS_DEPENDENT_PHONE_NUMBER, new ApiMethodHelper<>(AddressDependentPhoneNumberApiMethod.class, aliases, nullableArgs));
          apiMethods.put(AddressDependentPhoneNumberApiMethod.class, TwilioApiName.ADDRESS_DEPENDENT_PHONE_NUMBER);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.AVAILABLE_PHONE_NUMBER_COUNTRY_LOCAL, new ApiMethodHelper<>(AvailablePhoneNumberCountryLocalApiMethod.class, aliases, nullableArgs));
          apiMethods.put(AvailablePhoneNumberCountryLocalApiMethod.class, TwilioApiName.AVAILABLE_PHONE_NUMBER_COUNTRY_LOCAL);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.AVAILABLE_PHONE_NUMBER_COUNTRY_MOBILE, new ApiMethodHelper<>(AvailablePhoneNumberCountryMobileApiMethod.class, aliases, nullableArgs));
          apiMethods.put(AvailablePhoneNumberCountryMobileApiMethod.class, TwilioApiName.AVAILABLE_PHONE_NUMBER_COUNTRY_MOBILE);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.AVAILABLE_PHONE_NUMBER_COUNTRY_TOLL_FREE, new ApiMethodHelper<>(AvailablePhoneNumberCountryTollFreeApiMethod.class, aliases, nullableArgs));
          apiMethods.put(AvailablePhoneNumberCountryTollFreeApiMethod.class, TwilioApiName.AVAILABLE_PHONE_NUMBER_COUNTRY_TOLL_FREE);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.CALL_NOTIFICATION, new ApiMethodHelper<>(CallNotificationApiMethod.class, aliases, nullableArgs));
          apiMethods.put(CallNotificationApiMethod.class, TwilioApiName.CALL_NOTIFICATION);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.CALL_RECORDING, new ApiMethodHelper<>(CallRecordingApiMethod.class, aliases, nullableArgs));
          apiMethods.put(CallRecordingApiMethod.class, TwilioApiName.CALL_RECORDING);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.CONFERENCE_PARTICIPANT, new ApiMethodHelper<>(ConferenceParticipantApiMethod.class, aliases, nullableArgs));
          apiMethods.put(ConferenceParticipantApiMethod.class, TwilioApiName.CONFERENCE_PARTICIPANT);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.INCOMING_PHONE_NUMBER_LOCAL, new ApiMethodHelper<>(IncomingPhoneNumberLocalApiMethod.class, aliases, nullableArgs));
          apiMethods.put(IncomingPhoneNumberLocalApiMethod.class, TwilioApiName.INCOMING_PHONE_NUMBER_LOCAL);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.INCOMING_PHONE_NUMBER_MOBILE, new ApiMethodHelper<>(IncomingPhoneNumberMobileApiMethod.class, aliases, nullableArgs));
          apiMethods.put(IncomingPhoneNumberMobileApiMethod.class, TwilioApiName.INCOMING_PHONE_NUMBER_MOBILE);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.INCOMING_PHONE_NUMBER_TOLL_FREE, new ApiMethodHelper<>(IncomingPhoneNumberTollFreeApiMethod.class, aliases, nullableArgs));
          apiMethods.put(IncomingPhoneNumberTollFreeApiMethod.class, TwilioApiName.INCOMING_PHONE_NUMBER_TOLL_FREE);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.MESSAGE_FEEDBACK, new ApiMethodHelper<>(MessageFeedbackApiMethod.class, aliases, nullableArgs));
          apiMethods.put(MessageFeedbackApiMethod.class, TwilioApiName.MESSAGE_FEEDBACK);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.MESSAGE_MEDIA, new ApiMethodHelper<>(MessageMediaApiMethod.class, aliases, nullableArgs));
          apiMethods.put(MessageMediaApiMethod.class, TwilioApiName.MESSAGE_MEDIA);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.QUEUE_MEMBER, new ApiMethodHelper<>(QueueMemberApiMethod.class, aliases, nullableArgs));
          apiMethods.put(QueueMemberApiMethod.class, TwilioApiName.QUEUE_MEMBER);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.RECORDING_ADD_ON_RESULT, new ApiMethodHelper<>(RecordingAddOnResultApiMethod.class, aliases, nullableArgs));
          apiMethods.put(RecordingAddOnResultApiMethod.class, TwilioApiName.RECORDING_ADD_ON_RESULT);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.RECORDING_TRANSCRIPTION, new ApiMethodHelper<>(RecordingTranscriptionApiMethod.class, aliases, nullableArgs));
          apiMethods.put(RecordingTranscriptionApiMethod.class, TwilioApiName.RECORDING_TRANSCRIPTION);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.RECORDING_ADD_ON_RESULT_PAYLOAD, new ApiMethodHelper<>(RecordingAddOnResultPayloadApiMethod.class, aliases, nullableArgs));
          apiMethods.put(RecordingAddOnResultPayloadApiMethod.class, TwilioApiName.RECORDING_ADD_ON_RESULT_PAYLOAD);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SIP_CREDENTIAL_LIST, new ApiMethodHelper<>(SipCredentialListApiMethod.class, aliases, nullableArgs));
          apiMethods.put(SipCredentialListApiMethod.class, TwilioApiName.SIP_CREDENTIAL_LIST);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SIP_DOMAIN, new ApiMethodHelper<>(SipDomainApiMethod.class, aliases, nullableArgs));
          apiMethods.put(SipDomainApiMethod.class, TwilioApiName.SIP_DOMAIN);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SIP_IP_ACCESS_CONTROL_LIST, new ApiMethodHelper<>(SipIpAccessControlListApiMethod.class, aliases, nullableArgs));
          apiMethods.put(SipIpAccessControlListApiMethod.class, TwilioApiName.SIP_IP_ACCESS_CONTROL_LIST);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SIP_CREDENTIAL_LIST_CREDENTIAL, new ApiMethodHelper<>(SipCredentialApiMethod.class, aliases, nullableArgs));
          apiMethods.put(SipCredentialApiMethod.class, TwilioApiName.SIP_CREDENTIAL_LIST_CREDENTIAL);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SIP_DOMAIN_CREDENTIAL_LIST_MAPPING, new ApiMethodHelper<>(SipDomainCredentialListMappingApiMethod.class, aliases, nullableArgs));
          apiMethods.put(SipDomainCredentialListMappingApiMethod.class, TwilioApiName.SIP_DOMAIN_CREDENTIAL_LIST_MAPPING);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SIP_DOMAIN_IP_ACCESS_CONTROL_LIST_MAPPING, new ApiMethodHelper<>(SipDomainIpAccessControlListMappingApiMethod.class, aliases, nullableArgs));
          apiMethods.put(SipDomainIpAccessControlListMappingApiMethod.class, TwilioApiName.SIP_DOMAIN_IP_ACCESS_CONTROL_LIST_MAPPING);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.SIP_IP_ACCESS_CONTROL_LIST_IP_ADDRESS, new ApiMethodHelper<>(SipIpAccessControlListIpAddressApiMethod.class, aliases, nullableArgs));
          apiMethods.put(SipIpAccessControlListIpAddressApiMethod.class, TwilioApiName.SIP_IP_ACCESS_CONTROL_LIST_IP_ADDRESS);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD, new ApiMethodHelper<>(UsageRecordApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordApiMethod.class, TwilioApiName.USAGE_RECORD);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_TRIGGER, new ApiMethodHelper<>(UsageTriggerApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageTriggerApiMethod.class, TwilioApiName.USAGE_TRIGGER);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD_ALL_TIME, new ApiMethodHelper<>(UsageRecordAllTimeApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordAllTimeApiMethod.class, TwilioApiName.USAGE_RECORD_ALL_TIME);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD_DAILY, new ApiMethodHelper<>(UsageRecordDailyApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordDailyApiMethod.class, TwilioApiName.USAGE_RECORD_DAILY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD_LAST_MONTH, new ApiMethodHelper<>(UsageRecordLastMonthApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordLastMonthApiMethod.class, TwilioApiName.USAGE_RECORD_LAST_MONTH);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD_MONTHLY, new ApiMethodHelper<>(UsageRecordMonthlyApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordMonthlyApiMethod.class, TwilioApiName.USAGE_RECORD_MONTHLY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD_THIS_MONTH, new ApiMethodHelper<>(UsageRecordThisMonthApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordThisMonthApiMethod.class, TwilioApiName.USAGE_RECORD_THIS_MONTH);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD_TODAY, new ApiMethodHelper<>(UsageRecordTodayApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordTodayApiMethod.class, TwilioApiName.USAGE_RECORD_TODAY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD_YEARLY, new ApiMethodHelper<>(UsageRecordYearlyApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordYearlyApiMethod.class, TwilioApiName.USAGE_RECORD_YEARLY);
  
          aliases.clear();
          aliases.put("^creator$", "create");
          aliases.put("^deleter$", "delete");
          aliases.put("^fetcher$", "fetch");
          aliases.put("^reader$", "read");
          aliases.put("^updater$", "update");
          nullableArgs = Arrays.asList();
          apiHelpers.put(TwilioApiName.USAGE_RECORD_YESTERDAY, new ApiMethodHelper<>(UsageRecordYesterdayApiMethod.class, aliases, nullableArgs));
          apiMethods.put(UsageRecordYesterdayApiMethod.class, TwilioApiName.USAGE_RECORD_YESTERDAY);
  
          setApiHelpers(apiHelpers);
          setApiMethods(apiMethods);
      }
  
      public TwilioConfiguration getEndpointConfiguration(TwilioApiName apiName) {
          TwilioConfiguration result = null;
          switch (apiName) {
              case ACCOUNT:
                  result = new AccountEndpointConfiguration();
                  break;
              case ADDRESS:
                  result = new AddressEndpointConfiguration();
                  break;
              case APPLICATION:
                  result = new ApplicationEndpointConfiguration();
                  break;
              case AVAILABLE_PHONE_NUMBER_COUNTRY:
                  result = new AvailablePhoneNumberCountryEndpointConfiguration();
                  break;
              case CALL:
                  result = new CallEndpointConfiguration();
                  break;
              case CONFERENCE:
                  result = new ConferenceEndpointConfiguration();
                  break;
              case CONNECT_APP:
                  result = new ConnectAppEndpointConfiguration();
                  break;
              case INCOMING_PHONE_NUMBER:
                  result = new IncomingPhoneNumberEndpointConfiguration();
                  break;
              case KEY:
                  result = new KeyEndpointConfiguration();
                  break;
              case MESSAGE:
                  result = new MessageEndpointConfiguration();
                  break;
              case NEW_KEY:
                  result = new NewKeyEndpointConfiguration();
                  break;
              case NEW_SIGNING_KEY:
                  result = new NewSigningKeyEndpointConfiguration();
                  break;
              case NOTIFICATION:
                  result = new NotificationEndpointConfiguration();
                  break;
              case OUTGOING_CALLER_ID:
                  result = new OutgoingCallerIdEndpointConfiguration();
                  break;
              case QUEUE:
                  result = new QueueEndpointConfiguration();
                  break;
              case RECORDING:
                  result = new RecordingEndpointConfiguration();
                  break;
              case SHORT_CODE:
                  result = new ShortCodeEndpointConfiguration();
                  break;
              case SIGNING_KEY:
                  result = new SigningKeyEndpointConfiguration();
                  break;
              case TOKEN:
                  result = new TokenEndpointConfiguration();
                  break;
              case TRANSCRIPTION:
                  result = new TranscriptionEndpointConfiguration();
                  break;
              case VALIDATION_REQUEST:
                  result = new ValidationRequestEndpointConfiguration();
                  break;
              case ADDRESS_DEPENDENT_PHONE_NUMBER:
                  result = new AddressDependentPhoneNumberEndpointConfiguration();
                  break;
              case AVAILABLE_PHONE_NUMBER_COUNTRY_LOCAL:
                  result = new AvailablePhoneNumberCountryLocalEndpointConfiguration();
                  break;
              case AVAILABLE_PHONE_NUMBER_COUNTRY_MOBILE:
                  result = new AvailablePhoneNumberCountryMobileEndpointConfiguration();
                  break;
              case AVAILABLE_PHONE_NUMBER_COUNTRY_TOLL_FREE:
                  result = new AvailablePhoneNumberCountryTollFreeEndpointConfiguration();
                  break;
              case CALL_NOTIFICATION:
                  result = new CallNotificationEndpointConfiguration();
                  break;
              case CALL_RECORDING:
                  result = new CallRecordingEndpointConfiguration();
                  break;
              case CONFERENCE_PARTICIPANT:
                  result = new ConferenceParticipantEndpointConfiguration();
                  break;
              case INCOMING_PHONE_NUMBER_LOCAL:
                  result = new IncomingPhoneNumberLocalEndpointConfiguration();
                  break;
              case INCOMING_PHONE_NUMBER_MOBILE:
                  result = new IncomingPhoneNumberMobileEndpointConfiguration();
                  break;
              case INCOMING_PHONE_NUMBER_TOLL_FREE:
                  result = new IncomingPhoneNumberTollFreeEndpointConfiguration();
                  break;
              case MESSAGE_FEEDBACK:
                  result = new MessageFeedbackEndpointConfiguration();
                  break;
              case MESSAGE_MEDIA:
                  result = new MessageMediaEndpointConfiguration();
                  break;
              case QUEUE_MEMBER:
                  result = new QueueMemberEndpointConfiguration();
                  break;
              case RECORDING_ADD_ON_RESULT:
                  result = new RecordingAddOnResultEndpointConfiguration();
                  break;
              case RECORDING_TRANSCRIPTION:
                  result = new RecordingTranscriptionEndpointConfiguration();
                  break;
              case RECORDING_ADD_ON_RESULT_PAYLOAD:
                  result = new RecordingAddOnResultPayloadEndpointConfiguration();
                  break;
              case SIP_CREDENTIAL_LIST:
                  result = new SipCredentialListEndpointConfiguration();
                  break;
              case SIP_DOMAIN:
                  result = new SipDomainEndpointConfiguration();
                  break;
              case SIP_IP_ACCESS_CONTROL_LIST:
                  result = new SipIpAccessControlListEndpointConfiguration();
                  break;
              case SIP_CREDENTIAL_LIST_CREDENTIAL:
                  result = new SipCredentialEndpointConfiguration();
                  break;
              case SIP_DOMAIN_CREDENTIAL_LIST_MAPPING:
                  result = new SipDomainCredentialListMappingEndpointConfiguration();
                  break;
              case SIP_DOMAIN_IP_ACCESS_CONTROL_LIST_MAPPING:
                  result = new SipDomainIpAccessControlListMappingEndpointConfiguration();
                  break;
              case SIP_IP_ACCESS_CONTROL_LIST_IP_ADDRESS:
                  result = new SipIpAccessControlListIpAddressEndpointConfiguration();
                  break;
              case USAGE_RECORD:
                  result = new UsageRecordEndpointConfiguration();
                  break;
              case USAGE_TRIGGER:
                  result = new UsageTriggerEndpointConfiguration();
                  break;
              case USAGE_RECORD_ALL_TIME:
                  result = new UsageRecordAllTimeEndpointConfiguration();
                  break;
              case USAGE_RECORD_DAILY:
                  result = new UsageRecordDailyEndpointConfiguration();
                  break;
              case USAGE_RECORD_LAST_MONTH:
                  result = new UsageRecordLastMonthEndpointConfiguration();
                  break;
              case USAGE_RECORD_MONTHLY:
                  result = new UsageRecordMonthlyEndpointConfiguration();
                  break;
              case USAGE_RECORD_THIS_MONTH:
                  result = new UsageRecordThisMonthEndpointConfiguration();
                  break;
              case USAGE_RECORD_TODAY:
                  result = new UsageRecordTodayEndpointConfiguration();
                  break;
              case USAGE_RECORD_YEARLY:
                  result = new UsageRecordYearlyEndpointConfiguration();
                  break;
              case USAGE_RECORD_YESTERDAY:
                  result = new UsageRecordYesterdayEndpointConfiguration();
                  break;
          }
          return result;
      }
  
      public static TwilioApiCollection getCollection() {
          return TwilioApiCollectionHolder.INSTANCE;
      }
  
      private static final class TwilioApiCollectionHolder {
          private static final TwilioApiCollection INSTANCE = new TwilioApiCollection();
      }
  }
  