<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.camel</groupId>
    <artifactId>components</artifactId>
    <version>2.23.0</version>
  </parent>

  <artifactId>camel-twilio</artifactId>
  <packaging>jar</packaging>
  <name>Camel :: Twilio</name>
  <description>Camel Component for Twilio</description>

  <properties>
    <schemeName>twilio</schemeName>
    <componentName>Twilio</componentName>
    <componentPackage>org.apache.camel.component.twilio</componentPackage>
    <outPackage>org.apache.camel.component.twilio.internal</outPackage>

    <camel.osgi.export.pkg>${componentPackage}</camel.osgi.export.pkg>
    <camel.osgi.private.pkg>${outPackage}</camel.osgi.private.pkg>
    <camel.osgi.export.service>org.apache.camel.spi.ComponentResolver;component=twilio</camel.osgi.export.service>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
    </dependency>

    <!-- Twilio Java SDK -->
    <dependency>
      <groupId>com.twilio.sdk</groupId>
      <artifactId>twilio</artifactId>
      <version>${twilio-version}</version>
    </dependency>

    <!-- Camel annotations in provided scope to avoid compile errors in IDEs -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>spi-annotations</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>

    <!-- Component API javadoc in provided scope to read API signatures -->
    <dependency>
      <groupId>com.twilio.sdk</groupId>
      <artifactId>twilio</artifactId>
      <version>${twilio-version}</version>
      <type>javadoc</type>
      <scope>provided</scope>
    </dependency>

    <!-- logging -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <scope>test</scope>
    </dependency>

    <!-- testing -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <defaultGoal>install</defaultGoal>

    <plugins>

      <!-- generate Component source and test source -->
      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-api-component-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-test-component-classes</id>
            <goals>
              <goal>fromApis</goal>
            </goals>
            <configuration>
              <apis>
                <api>
                  <apiName>account</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.Account</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account -->
                <api>
                  <apiName>address</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Address</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>application</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Application</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>available-phone-number-country</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.AvailablePhoneNumberCountry</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>call</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Call</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>conference</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Conference</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>connect-app</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.ConnectApp</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>incoming-phone-number</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.IncomingPhoneNumber</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>key</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Key</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>message</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Message</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>new-key</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.NewKey</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>new-signing-key</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.NewSigningKey</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>notification</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Notification</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>outgoing-caller-id</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.OutgoingCallerId</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>queue</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Queue</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>recording</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Recording</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>short-code</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.ShortCode</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>signing-key</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.SigningKey</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>token</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Token</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>transcription</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.Transcription</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>validation-request</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.ValidationRequest</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.address -->
                <api>
                  <apiName>address-dependent-phone-number</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.address.DependentPhoneNumber</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.availablephonenumbercountry -->
                <api>
                  <apiName>available-phone-number-country-local</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.availablephonenumbercountry.Local</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>available-phone-number-country-mobile</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.availablephonenumbercountry.Mobile</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>available-phone-number-country-toll-free</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.availablephonenumbercountry.TollFree</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.call -->
                <api>
                  <apiName>call-feedback</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.call.Feedback</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>call-feedback-summary</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.call.FeedbackSummary</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>call-notification</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.call.Notification</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>call-recording</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.call.Recording</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.conference -->
                <api>
                  <apiName>conference-participant</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.conference.Participant</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.incomingphonenumber -->
                <api>
                  <apiName>incoming-phone-number-local</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.incomingphonenumber.Local</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>incoming-phone-number-mobile</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.incomingphonenumber.Mobile</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>incoming-phone-number-toll-free</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.incomingphonenumber.TollFree</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.message -->
                <api>
                  <apiName>message-feedback</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.message.Feedback</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>message-media</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.message.Media</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.queue -->
                <api>
                  <apiName>queue-member</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.queue.Member</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.recording -->
                <api>
                  <apiName>recording-add-on-result</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.recording.AddOnResult</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>recording-transcription</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.recording.Transcription</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.recording.addonresult -->
                <api>
                  <apiName>recording-add-on-result-payload</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.recording.addonresult.Payload</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.sip -->
                <api>
                  <apiName>sip-credential-list</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.sip.CredentialList</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>sip-domain</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.sip.Domain</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>sip-ip-access-control-list</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.sip.IpAccessControlList</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.sip.credentiallist -->
                <api>
                  <apiName>sip-credential-list-credential</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.sip.credentiallist.Credential</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.sip.domain -->
                <api>
                  <apiName>sip-domain-credential-list-mapping</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.sip.domain.CredentialListMapping</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>sip-domain-ip-access-control-list-mapping</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.sip.domain.IpAccessControlListMapping</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.sip.ipaccesscontrollist -->
                <api>
                  <apiName>sip-ip-access-control-list-ip-address</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.sip.ipaccesscontrollist.IpAddress</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.usage -->
                <api>
                  <apiName>usage-record</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.Record</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>usage-trigger</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.Trigger</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <!-- Package: com.twilio.rest.api.v2010.account.usage.record -->
                <api>
                  <apiName>usage-record-all-time</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.record.AllTime</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>usage-record-daily</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Daily</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>usage-record-last-month</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.record.LastMonth</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>usage-record-monthly</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Monthly</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>usage-record-this-month</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.record.ThisMonth</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>usage-record-today</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Today</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>usage-record-yearly</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Yearly</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
                <api>
                  <apiName>usage-record-yesterday</apiName>
                  <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Yesterday</proxyClass>
                  <fromJavadoc>
                    <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                    <includeStaticMethods>true</includeStaticMethods>
                  </fromJavadoc>
                </api>
              </apis>
              <aliases>
                <alias>
                  <methodPattern>^creator$</methodPattern>
                  <methodAlias>create</methodAlias>
                </alias>
                <alias>
                  <methodPattern>^deleter$</methodPattern>
                  <methodAlias>delete</methodAlias>
                </alias>
                <alias>
                  <methodPattern>^fetcher$</methodPattern>
                  <methodAlias>fetch</methodAlias>
                </alias>
                <alias>
                  <methodPattern>^reader$</methodPattern>
                  <methodAlias>read</methodAlias>
                </alias>
                <alias>
                  <methodPattern>^updater$</methodPattern>
                  <methodAlias>update</methodAlias>
                </alias>
              </aliases>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- add generated source and test source to build -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-generated-sources</id>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.build.directory}/generated-sources/camel-component</source>
              </sources>
            </configuration>
          </execution>
          <execution>
            <id>add-generated-test-sources</id>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.build.directory}/generated-test-sources/camel-component</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-api-component-maven-plugin</artifactId>
          <version>${project.version}</version>
          <configuration>
            <scheme>${schemeName}</scheme>
            <componentName>${componentName}</componentName>
            <componentPackage>${componentPackage}</componentPackage>
            <outPackage>${outPackage}</outPackage>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-api-component-maven-plugin</artifactId>
        <version>${project.version}</version>
        <configuration>
          <scheme>${schemeName}</scheme>
          <componentName>${componentName}</componentName>
          <componentPackage>${componentPackage}</componentPackage>
          <outPackage>${outPackage}</outPackage>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>twilio-test</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven-surefire-plugin-version}</version>
            <configuration>
              <childDelegation>false</childDelegation>
              <useFile>true</useFile>
              <forkCount>1</forkCount>
              <reuseForks>true</reuseForks>
              <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
              <excludes>
                <exclude>**/*XXXTest.java</exclude>
              </excludes>
              <includes>
                <include>**/*Test.java</include>
              </includes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
